Vnos podatkov v tabelo s pomočjo vlookup in obrazca

Pomoč pri izdelavi makrov
Odgovori
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Vnos podatkov v tabelo s pomočjo vlookup in obrazca

Odgovor Napisal/-a tjazma »

Pozdravljeni,
Izdelal sem obrazec za vnos rezultatov tekmovanja naših članov v excelovo tabelo.
V obrazec je potrebno vnesti Šifro Člana, Ime in Priimek, Naslov in rezultat. Vse podatke članov imam na drugem listu . Spremenljivka so edino rezultati. Rad bi zadevo poenostavil z funkcijo vlookup .
V obrazec bi vnesel Šifro člana ostala tekstovna polja bi se samodejno popolnila z ostalimi podatki razen polje rezultata .

Vendar nimam dovolj znanja da bi napisal vlookup stavek ki bi nasel v drugem listu potrebne podatke in jih poveza z pripadajočimi tekstovnimi polji v obrazcu. Mi lahko prosim pomagate ?

Lep pozdrav Matjaz Blasko

Priložena je procedura s katero vnašam podatke v tabelo.

Private Sub cmdShraniPodatke_Click()

List1.Activate

Range("A1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
ActiveCell.Font.Italic = True
ActiveCell.Offset(0, 1).Value = txtLetoTeden.Value
ActiveCell.Offset(0, 3).Value = txtIdClana.Value
ActiveCell.Offset(0, 4).Value = txtImeClana.Value
ActiveCell.Offset(0, 5).Value = txtNaslov.Value
ActiveCell.Offset(0, 6).Value = txtStatus.Value
ActiveCell.Offset(0, 7).Value = txtRezultat.Value

End Sub
admin
Site Admin
Prispevkov: 3583
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Vnos podatkov v tabelo s pomočjo vlookup in obrazca

Odgovor Napisal/-a admin »

Pozdravljeni,

VLookup funkcija ni primerna, saj VLookup lahko najde samo eno vrednot. To pomeni, da če vi poznate šifro, morate za Ime izvesti VLOOKUP, za priimek morate izvesti drugi VLOOKUP, za naslov tretjega itd... Mnogo bolje je, da preko šifre najdete vrstico, kjer je član zapisan in potem iz te vrstice berete podatke. Vrstico pa vam vrne funkcija MATCH in to rešitev vam podajam spodaj.

Vsa koda je lepo komentirana, zato bi se morali znajti. Bi vas pa opozoril na šifre. Če imate šifre zapisane kot številke potem je vse OK, saj ta koda že pretvori besedilo iz vnosnega polja v številko:

Koda: Izberi vse

  Dim sifraClana: sifraClana = CLng(txtIdClana.Value)
Če pa so šifre zapisane kot besedilo, potem pa pretvarjanja ne potrebujete

Koda: Izberi vse

  Dim sifraClana: sifraClana = txtIdClana.Value
Pa še koda:

Koda: Izberi vse

Sub NajdiTekmovalca()
  ' območje, kjer so šifre tekmovalcev
  Dim sifre: Set sifre = Range("List1!A5:A300")
  
  ' iz obrazca dobite šifro člana
  Dim sifraClana: sifraClana = CLng(txtIdClana.Value)
  
  ' najdete člana v seznamu
  Dim vrsticaClana: vrsticaClana = Application.Match(sifraClana, sifre, 0)
  
  If IsError(vrsticaClana) Then
    ' če Excel šifre ne najde javite napako
    MsgBox "šifra je napačna"
  Else
    ' sicer preberete podatke o članu iz tabele
    
    ' če je recimo ime člana zapisano v koloni C, potem njegovo ime dobite takole
    Dim imeClana: imeClana = sifre.Range("a1").Offset(vrsticaClana, 2)
    ' če je recimo priimek člana zapisan v koloni D, potem njegoo priimek dobite takole
    Dim priimekClana: imeClana = sifre.Range("a1").Offset(vrsticaClana, 2)
  End If
End Sub
lp,
Matjaž Prtenjak
Administrator
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Re: Vnos podatkov v tabelo s pomočjo vlookup in obrazca

Odgovor Napisal/-a tjazma »

Najlepša hvala za hiter odgovor in pomoč.
Zadevo udejanjim , če se kje zatakne se ponovno oglasim.
Lep pozdrav - Matjaz
Odgovori