• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VLookup in VBA form werkt niet

Status
Niet open voor verdere reacties.

Goldfoxx

Gebruiker
Lid geworden
22 okt 2010
Berichten
22
Ik ben een formulier aan het maken in VBA. Het volgende is de bedoeling:
- Debiteurnummer word ingevuld in een ComboBox met een specifieke range. (dit werkt)
- Op basis van deze waarde word de debiteurnaam met Vlookup gezocht in een werkblad. (veld "TBklantnaam"

De code die ik momenteel heb is de volgende:
Code:
Private Sub CBklantnr_Change()

Dim myRange As Range
Set myRange = Worksheets("Relatiebestand").Range("A:AZ")

TBklantnaam = WorksheetFunction.VLookup(CBklantnr, myRange, 3, 0)

End Sub

Hierbij krijg ik alleen de volgende melding: "unable to get the vlookup property of the worksheetfunction class", wat betekent dat er een foutmelding uit de formule komt.

Ik heb het volgende geprobeerd om te kijken waar de fout in zou moeten zitten:
- Een vaste waarde ingevuld in de formule, hierbij werkt de formule wel en krijgt het tekstveld de juiste waarde.. (vb: TBklantnaam = WorksheetFunction.VLookup(31453, myRange, 3, 0)
- Gekeken of CBklantnr een juiste waarde geeft, ook hier wordt een waarde meegegeven aan het tekstveld. (vb: TBklantnaam = CBklantnr.value)

Het is mij niet duidelijk waarom de formule niet werkt, heeft iemand een idee waar het in kan zitten?
 
Laatst bewerkt:
Maak van CBklantnr eens CBklantnr.Text
 
Laatst bewerkt:
Je code is verder goed dus wellicht dat je je document even kan plaatsen.
 
Maak er maar dit van:
Code:
Private Sub CBklantnr_Change()
    Dim myRange As Range

    Set myRange = Worksheets("Relatiebestand").Range("A:AZ")
    TBklantnaam = WorksheetFunction.VLookup(CLng(CBklantnr), myRange, 3, 0)
End Sub

Je probeerde een String (CBklantnr) te vergelijken met een Long Integer (Kolom A) en daar ging het mis.
 
Laatst bewerkt:
Maak er maar dit van:
Code:
Private Sub CBklantnr_Change()
    Dim myRange As Range

    Set myRange = Worksheets("Relatiebestand").Range("A:AZ")
    TBklantnaam = WorksheetFunction.VLookup(CLng(CBklantnr), myRange, 3, 0)
End Sub

Je probeerde een String (CBklantnr) te vergelijken met een Long Integer (Kolom A) en daar ging het mis.

Bedankt! Dat werkt inderdaad.

Op welke manier kan ik het onderscheid maken tussen deze twee, dat mij duidelijk is wanneer het een string betreft en geen Long integer?
 
Als er tekst (letters) in de variabele of cel staat is het altijd een string. Als er in een cel een getal staat die rechts uitgelijnd is mag je er vanuit gaan dat het gaat om een (Long) Integer. Tenzij bewust anders gedaan d.m.v. cel eigenschappen.

Een getal in een Text- of Combobox is altijd een string. De functie CLng converteert deze.
 
Als er tekst (letters) in de variabele of cel staat is het altijd een string. Als er in een cel een getal staat die rechts uitgelijnd is mag je er vanuit gaan dat het gaat om een (Long) Integer. Tenzij bewust anders gedaan d.m.v. cel eigenschappen.

Een getal in een Text- of Combobox is altijd een string. De functie CLng converteert deze.

Bedankt voor de info en je hulp! Ik zet het topic op opgelost.
 
Ok dan :)

Tip: Als je direct reageert op een vorig bericht hoef je niet te Quoten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan