VBA en verticaal zoeken

Status
Niet open voor verdere reacties.

Guess Who

Gebruiker
Lid geworden
7 nov 2006
Berichten
54
Ik heb nog een probleem. Ik wil namelijk in vba verticaal gaan zoeken of een bepaalde waarde aanwezig is in de lijst. Als dit voldaan is moet deze een actie doen, anders gewoon een melding geven dat het nummer niet aanwezig is.

Dit heb ik geprobeerd:
Code:
Private Sub PlanBekijken_Click()

Dim iWaarde
Dim Gevonden

iWaarde = Val(Plannummer_Opzoeken.Value)
Gevonden = WorksheetFunction.VLookup(Plannummer_Opzoeken.Value, Range("Archief!C2:C65000"), 1, onwaar)
If Gevonden = "#N/B" Then
MsgBox "Dit plannummer bestaat niet"
Else
    If iWaarde = 0 Then
    MsgBox "Gelieve een getal in te vullen", vbOKOnly
    Else
    PlannummerOpzoeken = Plannummer_Opzoeken
    PlannummerOpzoekenRij = Range("Archief!C2:C65000").Find(Plannummer_Opzoeken.Value, LookIn:=xlValues, LookAt:=xlWhole).Row
    Opzoeken_Op_Plannummer.Hide
    Plan_Op_Plannummer_Tonen.Show
    End If
End If
End Sub

Ik krijg steeds fout 1004: eigenschap vlookup van klasse worksheetfunction kan niet worden opgehaald :eek:
 
ik had als test in de cellen A2:A9 een aantal letters gezet, door in de macro een zoekwaarde in te vullen (bijv. d) wordt er gezocht in de range of het voorkomt.
Volgens mij moet je dit wel kunnen uitbreiden met de acties die je wilt uitvoeren.

Code:
Sub Zoek()

Dim Zoekwaarde As String
Zoekwaarde = "d"

If Not Range("A2:A9").Find(Zoekwaarde) Is Nothing Then
    MsgBox "Waarde komt voor in range"
Else
    MsgBox "Waarde komt niet voor in range"
End If

End Sub
 
Als je het in VBA wil waarom plaats je je vraag dan in Excel. Verplaatst naar juiste sectie.
 
In de VLookup moet onwaar, False worden.

En ik weet ook niet zeker of de notatie voor de Range in Range("Archief!C2:C65000") zo gaat werken. Waarom eigenlijk zulk een groot bereik?

Wigi
 
eerst en vooral bedankt voor jullie hulp.

En ik weet ook niet zeker of de notatie voor de Range in Range("Archief!C2:C65000") zo gaat werken. Waarom eigenlijk zulk een groot bereik?
De range op die manier werkt dus wel degelijk, maar het grote bereik kon ik inderdaad nog verkleinen door de laatste rij op te zoeken.

Op dit moment is mijn code zoals hieronder, en ze werkt.
Code:
Private Sub PlanBekijken_Click()
 
Dim iWaarde
Dim DestSheet As Worksheet
Dim Lr As Long
 
Set DestSheet = Sheets("Archief")
    Lr = Sheets("Archief").Range("c65500").End(xlUp).Row
 
iWaarde = Val(Plannummer_Opzoeken.Value)
If Range("Archief!C2:C" & Lr).Find(Plannummer_Opzoeken.Value) Is Nothing Then
MsgBox "Dit plannummer bestaat niet"
Else
    If iWaarde = 0 Then
    MsgBox "Gelieve een getal in te vullen", vbOKOnly
    Else
    PlannummerOpzoeken = Plannummer_Opzoeken
    PlannummerOpzoekenRij = Range("Archief!C2:C" & Lr).Find(Plannummer_Opzoeken.Value, LookIn:=xlValues, LookAt:=xlWhole).Row
    Opzoeken_Op_Plannummer.Hide
    Plan_Op_Plannummer_Tonen.Show
    End If
End If
End Sub

Bedankt iedereen :thumb: :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan