VLOOKUP in VBA
VLOOKUP in VBA
Buna ziua.
Am un tabel oarecare si sa zicem ca pe prima coloana se afla valori numerice (niste ID-uri). Pentru ca intentionez sa modific via VBA continutul unei celule din coloana 3 sa zicem, corespondent unui anume rand (ID) m-am gandit ca cel mai bine e cu VLOOKUP. Asta deoarece ID-urile nu sunt in ordine deoarece tabelul sufera diverse sortari. Lookup_value va fi preluat dintr-un textbox al unui form. Chestia e ca nu reusesc sa scriu formula cu VLOOKUP in VBA, care banuiesc care alta "exprimare".
Mi-ar prinde bine un exemplu.
Multumesc.
Am un tabel oarecare si sa zicem ca pe prima coloana se afla valori numerice (niste ID-uri). Pentru ca intentionez sa modific via VBA continutul unei celule din coloana 3 sa zicem, corespondent unui anume rand (ID) m-am gandit ca cel mai bine e cu VLOOKUP. Asta deoarece ID-urile nu sunt in ordine deoarece tabelul sufera diverse sortari. Lookup_value va fi preluat dintr-un textbox al unui form. Chestia e ca nu reusesc sa scriu formula cu VLOOKUP in VBA, care banuiesc care alta "exprimare".
Mi-ar prinde bine un exemplu.
Multumesc.
Re: VLOOKUP in VBA
Salut,
Aici gasesti un exemplu de user form cu Vlookup: http://www.itlearning.ro/forum/viewtopi ... e&start=50
Aici gasesti un exemplu de user form cu Vlookup: http://www.itlearning.ro/forum/viewtopi ... e&start=50
-
- Moderator
- Mesaje: 4570
- Membru din: Vin Iul 31, 2009 7:32 am
Re: VLOOKUP in VBA
Atentie - cu VLOOKUP obtii o valoare... iar din cate am inteles eu, tie iti trebuie defapt o adresa, o referinta sau mai exact un rand pe care se regaseste valoarea pentru a modifica apoi datele de pe o alta coloana... deci nu iti trebuie VLOOKUP.
Daca totusi iti trebuie VLOOKUP, ai primit deja un exemplu de la mariusc mai sus, pe scurt, pentru ca nu imi place sa caut cod in fisiere atasate decat daca este absolut necesar, apelul acestei functii ar fi in felul urmator:
"Trucul" in VBA este ca zona in care se face cautarea nu este specificata ca si in formula doar cu zona "A1:B10" ci trebuie folosit obiectul RANGE("A1:B10").
Pe de alta parte, in cazul tau cred ca mai bine folosesti metoda FIND pentru a gasi pozitia celulei si apoi poti sa modifici o alta celula de pe acelasi rand:
Daca totusi iti trebuie VLOOKUP, ai primit deja un exemplu de la mariusc mai sus, pe scurt, pentru ca nu imi place sa caut cod in fisiere atasate decat daca este absolut necesar, apelul acestei functii ar fi in felul urmator:
Cod: Selectaţi tot
Application.WorksheetFunction.VLookup(10,range("A1:B10"),2,0)
Pe de alta parte, in cazul tau cred ca mai bine folosesti metoda FIND pentru a gasi pozitia celulei si apoi poti sa modifici o alta celula de pe acelasi rand:
Cod: Selectaţi tot
Sub CautaCelula()
Dim Celula As Range
Dim ID As Double
ID = 10
Set Celula = Range("A1:A10").Find(What:=ID)
If Celula Is Nothing Then
Debug.Print "Nu a fost gasita nici o valoare"
Else
Debug.Print "Adresa celulei gasite: " & Celula.Address
Debug.Print "Randul pe care am gasit informatia: " & Celula.Row
'Modific celula de pe coloana C
Range("C" & Celula.Row).Value = "X"
End If
End Sub
Re: VLOOKUP in VBA
Well... yeah. In realitate nu aveam nevoie de VLOOKUP, ci doar asa credeam eu ca o sa rezolv problema. Codul tau este exact ce-mi trebuia. Bonus: cand o sa am nevoie real de VLOOKUP in VBA macar stiu cum sa fac.
Multumesc.
Multumesc.