• 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.

zoeken binnen een macro

Status
Niet open voor verdere reacties.

Willem Blaas

Gebruiker
Lid geworden
30 aug 2006
Berichten
253
goedenavond,

wanneer ik in een macro een aantal items laat bekijken of het gegeven wat opgegeven is erbij zit gaat het prima. als het niet gevonden wordt wil ik dat een melding geeft dat het niet gevonden is.welk commando of opdracht moet ik geven (voor of achter het zoekbereik) om dit te bereiken ? iets in de trant van "if not find" of ...........? wanneer ik bv zou vragen om de 5555 vindt hij die niet en dat wil ik de gebruiker laten weten


If strcode = "" Then GoTo foutje
If strcode = "1111" Then ActiveCell = "lamella"
If strcode = "2222" Then ActiveCell = "pomp"
If strcode = "3333" Then ActiveCell = "lager"
If strcode = "4444" Then ActiveCell = "spider"
If strcode = "6666" Then ActiveCell = "lagerplaat"
If strcode = "7777" Then ActiveCell = "snoer"
If strcode = "8888" Then ActiveCell = "motor"
If strcode = "9999" Then ActiveCell = "moer-plastic"


alles wat je weet is niet moeilijk dus wil ik graag bijleren
vriendelijke groet

willem blaas
 
Willem Blaas, Opzich kan het best zo, maar mooier is het om in dit soort gevallen een Select Case te gebruiken.
Code:
Sub Leren()
Dim strCode As String

    strCode = "9999"
    
    With ActiveCell
        Select Case strCode
        Case "1111"
            .Value = "lamella"
        Case "2222"
            .Value = "pomp"
        Case "3333"
            .Value = "lager"
        Case "4444"
            .Value = "spider"
        Case "6666"
            .Value = "lagerplaat"
        Case "7777"
            .Value = "snoer"
        Case "8888"
            .Value = "motor"
        Case "9999"
            .Value = "moer-plastic"
        Case Else
            MsgBox "waarde niet gevonden!", vbOKOnly, "Fout"
        End Select
    End With
    
End Sub

Groet, Leo
 
Laatst bewerkt:
@ Ginger
Door de code strCode = "9999" krijgt strCode altijd de waarde 9999.

@Willem Blaas
Zelf zou ik ook de Select Case gebruiken net als Ginger maar onderstaande code blijft zo dicht mogelijk bij je oorspronkelijke opzet.

Code:
Sub Leren()
Dim strCode As String
    If strCode = "" Then
          GoTo foutje
    ElseIf strCode = "1111" Then
        ActiveCell = "lamella"
    ElseIf strCode = "2222" Then
        ActiveCell = "pomp"
    ElseIf strCode = "3333" Then
        ActiveCell = "lager"
    ElseIf strCode = "4444" Then
        ActiveCell = "spider"
    ElseIf strCode = "6666" Then
        ActiveCell = "lagerplaat"
    ElseIf strCode = "7777" Then
        ActiveCell = "snoer"
    ElseIf strCode = "8888" Then
        ActiveCell = "motor"
    ElseIf strCode = "9999" Then
        ActiveCell = "moer-plastic"
    Else
        MsgBox "De waarde is niet aanwezig", vbExclamation, "Niet aanwezig"
    End If
    
End Sub

Het grote verschil met je code is dat bij je code alle regels worden doorlopen. In bovenstaande code (én bij Ginger's code) slaat de computer de regels over als er een waarde is gevonden.
Dus stel je bent op zoek naar 3333. Zodra deze is gevonden gaat de computer automatisch naar End IF (of in het geval van Select Case) naar End Case en dus niet naar de overige zoekfuncties.

Met vriendelijke groet,


Roncancio
 
Wellicht is dit gedaan voor testdoeleinden, vermoed ik.

Dat vermoeden heb ik zelf ook.
Ik meld het even voor het geval de TS zich afvraagt wat er niet gaat.

Met vriendelijke groet,


Roncancio
 
beste mensen

bedankt voor de reactie en sorry dat ik zo laat reageer, ben vandaag heel de dag met de kleinkinderen op pad geweest.ik ga het proberen en jllie horen nog
 
@Roncancio & @Wigi, Dank voor de aanvulling, maar zoals wigi al opmerkte... Het was inderdaad bedoeld voor de test van de TS. Maar het was zeker netter geweest als ik dat er als commentaar bij had vermeld.

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan