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

MsgBox met voorwaarde

Status
Niet open voor verdere reacties.

wieter

Terugkerende gebruiker
Lid geworden
26 jun 2009
Berichten
1.128
Als in "C7" een zoeknaam ingevuld wordt die niet in de lijst voorkomt, wil ik een MsgBox die dat dan ook vermeld.
De onderstaande code doet dit echter niet.
Wil iemand helpen?
Code:
Sub opvragen()
    With Sheets("Blad1")
        [COLOR="#FF0000"]'If Not .Range("C8:C65536").MatchFound(.Range("C7").Value) Then
        'If MsgBox("Naam komt niet voor in de lijst.", 1 = vbYesNo) Then Exit Sub
        'End If[/COLOR]       
        rij = .Range("C8:C65536").Find(.Range("C7").Value).Row
        ls = .Cells(rij, 3).Offset(, 1).Resize(, 12)
        .Range("C7").Offset(, 1).Resize(, 12) = ls
    End With
End Sub

Bekijk bijlage Opvragen en wegschrijven .xlsm
 
Hier blijkt weer eens hoe basiskennis van functies belangrijk is, want het antwoord is erg voor de hand liggend:
Code:
 If WorksheetFunction.CountIf(.Range("C8:C65536"), .Range("C7").Value) = 0 Then
 MsgBox ("Naam komt niet voor in de lijst.")
 Exit Sub
 End If
Macro's kun je overigens best in een module plaatsen!
 
Bedankt Zapatr,
Ik ben niet zo'n crack in VBA.
Weer iets bijgeleerd.
Vraagje: Waarom staat de code best in modules?
 
Dat kun je beschouwen als een regel, door Microsoft vastgesteld. Meer moet je daar niet achter zoeken.
Macro's uitgevoerd via besturingselementen en macro's automatisch uitgevoerd door een bepaalde handeling (Private sub....) komen op de plaats waar jij de gewone macro's plaatst. Maar misschien dat anderen een betere reden weten, dat horen we dan wel.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan