Code:
Public Function GetValue(trazeno As Range)
Dim j As Range
Set j = Worksheets("Sheet2").Range("B9") ' ovde se nalazi tabela koju pretrazujemo
While j.Value <> trazeno.Value And j.Value <> ""
Set j = j.Offset(1, 0) ' pomeramo se nadole u sifrarniku, sledeca sifra..
Wend
If j.Value = "" Then ' dosli smo do kraja sifrarnika tj. prve prazne celije
GetValue = "#NOT FOUND ERROR#"
Else
Set j = j.Offset(0, 1) ' uzimamo podatak desno od sifre (npr. "Milan")
GetValue = j.Value
End If
End Function
Dakle recimo da imas dva radna lista: Sheet1 i Sheet2.
Na Sheet2 se nalazi sledeca tabela (kolona levo su sifre, kolona desno imena):
Code:
WX10 Zika
1WX2 Pera
ER11 Mika
To je tabela u kojoj trazimo neku sifru (npr. "1WX2") i onda prepisujemo kolonu desno: "Pera".
Sifra WX10 se nalazi u celiji B9 (vidi gore u kodu ovo mora da se zna - gde pocinje pretraga sifrarnika!).
E sad, npr. na prvom listu ukucavamo sifre, a Excel automatski izbacuje imena u koloni pored nje. Celija sa prvom sifrom 1WX2 je celija A1, itd.
Code:
1WX2 =GetValue(A1)
WX10 =GetValue(A2)
U stvari, evo ti Excel fajl prikacen, funkcija se nalazi u Module1.
Na prvom listu kucas sifre u koloni A, a sifrarnik je na Sheet2 (u koji mozes da dodajes nove sifre, itd.).
Pozdrav
P.S.
Naravno, sifre ne moraju biti sortirane.
P.S. (2)
Makroi moraju da budu Enabled, naravno.
Commercial-Free !!!