Rulare cod VBA dupa valoare din dropdown

Informatii despre cum se utilizeaza Microsoft Excel 2007. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Rulare cod VBA dupa valoare din dropdown

Mesaj de RAMBO » Joi Mar 18, 2010 11:46 am

Buna ziua.
Am o problema pe care tot o amin datorita simplitatii ei (cred eu) si risc sa ma fac de... maro, dar nu ma descurc.
Cum fac sa ruleze un cod VBA sa ruleze automat atunci cind intr-o celula (formatata ca lista dropdown) este selectata o anumita valoare de interes. Mai la obiect (vezi exemplul atasat) am un cod simplu care vreau sa ruleze atunci, si doar atunci, cind in celula C1 este selectata Shigella. Eu stiu sa fac VBA-ul sa ruleze doar daca ii asociez buton.
Multumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de gecs » Joi Mar 18, 2010 11:53 am

Faci call-ul catre macro in procedura asociata evenimentului Change al foii respective:

Cod: Selectaţi tot

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 3 And Target.Value = "Shigella" Then
        Call YourMacro
    End If
End Sub

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de RAMBO » Joi Mar 18, 2010 12:07 pm

Exact de ce ma temeam: sa nu inteleg. Nu vad nici un eveniment Change pentru ca nu stiu de unde sa-l iau. Eu din ce am "inteles" a rezultat

Cod: Selectaţi tot

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 3 And Target.Value = "Shigella" Then
      Range("E1").ClearContents
    End If
End Sub
si nu merge
Ultima oară modificat Joi Mar 18, 2010 12:22 pm de către Anonymous, modificat 1 dată în total.
Motiv: Adaugare tag-uri CODE

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de gecs » Joi Mar 18, 2010 12:15 pm

Selectezi foaia in care ai celula a carei valoare trebuie sa-ti porneasca macro-ul -> click-dreapta pe tab-ul foii -> View Code -> se deschide editorul vba cu fereastra de cod a foii despective -> din combobox-ul din stanga-sus al acestei ferestre selectezi "Worksheet" (initial e selectat "(General)") -> din combobox-ul din dreapta-sus al ferestrei respective selectezi "Change" -> dai paste la codul pe care l-am postat eu mai sus in aceasta procedura (mai putin prima si ultima linie de cod) si inlocuiesti "Call YourMacro" cu ce linii de cod ai nevoie.

Testezi si vezi ca functioneaza.

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de Dr. Cloud » Joi Mar 18, 2010 12:21 pm

Uite si in poze ceea ce ti-a explicat colegul gecs.
Poza 1.JPG
Poza 2.JPG
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de RAMBO » Joi Mar 18, 2010 12:24 pm

Multumesc. Merge. Plus ca m-am luminat ce face General vs Worsheet.

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de RAMBO » Joi Mar 18, 2010 12:56 pm

Totusi daca are cineva idee de ce in fisierul original da eroarea "Type mismach"? Desi merge, dar trebuie sa ignor eroarea.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de gecs » Mar Mar 23, 2010 9:59 pm

RAMBO scrie:Totusi daca are cineva idee de ce in fisierul original da eroarea "Type mismach"? Desi merge, dar trebuie sa ignor eroarea.
Mie nu mi-a dat eroarea de care vorbesti !? Nu stiu cum s-o reproduc, asa ca nu stiu ce sa-ti raspund :(

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de Dr.Windows » Mie Mar 24, 2010 8:04 am

RAMBO scrie:Totusi daca are cineva idee de ce in fisierul original da eroarea "Type mismach"? Desi merge, dar trebuie sa ignor eroarea.
Eroarea de mai sus apare cand folosesti un tip de variabila iar functia asteapta un alt tip... de exemplu folosesti un SUM in care parametrii ar trebui sa fie de tip numeric iar tu ai folosit text.

Ataseaza fisierul tau ca sa-l vedem pentru ca probabil ai pus ceva gresit pe undeva...

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesaj de RAMBO » Joi Apr 01, 2010 10:23 am

Scuze de intirziere.
Atasez fisierul original. Ideea este ca la selectarea oricarei valori din lista (A4/foaia "izolate"), range-ul C8:C14 sa i se stearga continutul (ClearContents).
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Închis

Înapoi la “Intrebari despre Excel 2007”