Avatar billede Ups50 Novice
18. marts 2020 - 13:38 Der er 3 kommentarer og
1 løsning

VLOOKUP fungere ikke med tal kun tekst

Hej alle
Jeg skal lave et "dobbelt" lopslag der enten kigger i varenummer liste eller varetekst liste

Min formel ser således ud: (bare et eksempel)
Private Sub LST_B_Change()
If LST_B.Text = "" Then
LST_TAL.Text = ""
Else
On Error Resume Next
LST_TAL.Text = Evaluate("VLookup(""" & Me.LST_B.Value & """,Ark1!B1:C1700,2,False)")
End If


End Sub

Private Sub LST_TAL_Change()

If LST_TAL.Text = "" Then
LST_B.Text = ""
Else
On Error Resume Next
LST_B.Text = Evaluate("VLookup(""" & Me.LST_TAL.Value & """,Ark1!A1:B1700,2,False)")
End If


End Sub

Private Sub UserForm_Activate()
With LST_TAL
.RowSource = "LST_TAL"
End With
With LST_B
.RowSource = "LST_B"
End With

End Sub

I min userform fungere det fint når jeg skriver varetekst, men ikke når det er varenummer.
Jeg har selvfølgelig prøvet at formatere alle tal til tekst, men det fungere ikke.
Er der nogen der har en ide, ud over at tilføje et bogstav til alle varenumre
PFT
MVH
UPS50
Avatar billede RogerWilco Seniormester
20. marts 2020 - 10:42 #1
Prøv at tvinge søgeværdien i VLOOKUP til at være af typen tekst. Dette kan klares ved at tilføje &"" eller bruge funktionen TEXT().
Avatar billede Ups50 Novice
23. marts 2020 - 09:07 #2
Hvordan skriver jeg funktionen TEXT(), som du kan se i koden er &"" allerede i brug
Avatar billede RogerWilco Seniormester
23. marts 2020 - 20:04 #3
Du har ikke &"" med som en del af koden, og dermed heller ikke som en del af den resulterende VLOOKUP-kommando. Faktisk kan jeg nu se, at din eksisterende kode burde gøre det korrekt.

Jeg tror derfor heller ikke at det er dér problemet ligger, men snarere i formatet af din kolonne med varenumre.
Er du sikker på at cellerne/kolonnen er defineret som tekst?

Husk, at ændringer i cellers format først træder i kraft, når der indtastes nye værdier, dvs. man kan ikke ændre formatet af eksisterende værdier, bare ved at højreklikke på cellen/kolonnen og angive et andet format (i det mindste ikke i Excel 2013 som jeg bruger).

Prøv evt. at lave """ om til bare " i din kode til talsøgning, så der søges efter numeriske værdier.
Avatar billede Ups50 Novice
24. marts 2020 - 10:04 #4
hej RogerWilco

Så blev det en løsning! Nu kigger koden først om det er tekst, derefter om det er en numerisk værdi, det fungere fint.
Tak for hjælpen

For interesserede er koden her:
Private Sub LST_vnr1_Change()
If LST_vnr1.Text = "" Then
lst_VN.Text = ""
Else
On Error Resume Next
lst_VN.Text = Evaluate("VLookup(""" & Me.LST_vnr1.Text & """,Varekartotek!A:B,2,False)")
On Error Resume Next
lst_VN.Text = Evaluate("VLookup(" & Me.LST_vnr1.Text & ",Varekartotek!A:B,2,False)")
lst_lev_nr.Text = Evaluate("Vlookup(""" & Me.lst_VN.Text & """,VK!D:F,2,False)")
lst_lev_navn.Text = Evaluate("Vlookup(""" & Me.lst_VN.Text & """,VK!D:F,3,False)")
End If
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB