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
Vnos podatkov v tabelo s pomočjo vlookup in obrazca
Re: Vnos podatkov v tabelo s pomočjo vlookup in obrazca
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:
Če pa so šifre zapisane kot besedilo, potem pa pretvarjanja ne potrebujete
Pa še koda:
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)
Koda: Izberi vse
Dim sifraClana: sifraClana = txtIdClana.Value
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
Matjaž Prtenjak
Administrator
Re: Vnos podatkov v tabelo s pomočjo vlookup in obrazca
Najlepša hvala za hiter odgovor in pomoč.
Zadevo udejanjim , če se kje zatakne se ponovno oglasim.
Lep pozdrav - Matjaz
Zadevo udejanjim , če se kje zatakne se ponovno oglasim.
Lep pozdrav - Matjaz