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

Auto Msgbox na invullen waarde

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Beste ,

In een sheet wil ik een waarde controleren wanneer die ingetypt wordt.

De waarde (in a1) wordt getoetst aan een ondergrens in b1 en een bovengrens in c1. Wanneer de ingegeven waarde niet voldoet dan zou ik automatisch een messagebox willen zien verschijnen .

In bijlage een voorbeeld met een knop, maar graag zonder knop want als je vergeet te klikken .... is er geen controle.

dank alvast voor het ant
Sub Rechthoek1_Klikken()

If A2 > C2 Then
MsgBox ("waarde te hoog")
End If

If A2 < B2 Then
MsgBox ("waarde te laag")
End If

End Sub
woord.
 

Bijlagen

Laatst bewerkt:
Tijdens het typen controleren kan alleen met een form. Gegevens automatisch controleren na ingave (en de invoer eventueel tegenhouden) kan al met gegevensvalidatie zonder gebruik van VBA.

Dus afhankelijk van hoe je het interpreteert is het antwoord: "kan niet" OF "bestaat standaard al"
 
Zet deze in je werkblad:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
  If Cells(2, 1) < Cells(2, 2) Then MsgBox "Waarde te laag!"
  If Cells(2, 1) > Cells(2, 3) Then MsgBox "Waarde te hoog!"
End If
End Sub
 
Mooi, de code werkt, waarvoor dank.

Maar bijkomend zou ik graag hebben dat de cel waar het resultaat ingegeven werd geleegd wordt .... Dus eerst verschijnt de msgbox zodat de gebruiker info krijgt en daarna verdwijnt het getaal in de betrokken cel... Kan dat er nog bij aub ?

dank,

Stefaan
 
Vervang de code door deze:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
 With Application
    .EnableEvents = False
       If Cells(2, 1) < Cells(2, 2) Then
         MsgBox "Waarde te laag!"
          Cells(2, 1) = ""
       End If
       If Cells(2, 1) > Cells(2, 3) Then
         MsgBox "Waarde te hoog!"
          Cells(2, 1) = ""
       End If
    .EnableEvents = True
 End With
End If

End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan