Rulare cod VBA dupa valoare din dropdown

Informatii despre cum se utilizeaza Microsoft Excel 2007. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc

Rulare cod VBA dupa valoare din dropdown

Mesajde 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.
RAMBO
 
Mesaje: 389
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde 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
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

Mesajde 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 de Anonymous pe Joi Mar 18, 2010 12:22 pm, modificat 1 dată în total.
Motiv: Adaugare tag-uri CODE
RAMBO
 
Mesaje: 389
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde 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.
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

Mesajde 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.
Dr. Cloud
 
Mesaje: 3329
Membru din: Mar Oct 02, 2012 11:19 am

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde RAMBO » Joi Mar 18, 2010 12:24 pm

Multumesc. Merge. Plus ca m-am luminat ce face General vs Worsheet.
RAMBO
 
Mesaje: 389
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde 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.
RAMBO
 
Mesaje: 389
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde 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 :(
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

Mesajde 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...
Dr.Windows
Site Admin
Site Admin
 
Mesaje: 4493
Membru din: Vin Iul 31, 2009 7:32 am

Re: Rulare cod VBA dupa valoare din dropdown

Mesajde 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.
RAMBO
 
Mesaje: 389
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Următorul

Înapoi la Intrebari despre Excel 2007

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron