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

Vastloper door if functie oplossen

Status
Niet open voor verdere reacties.

cissie1

Gebruiker
Lid geworden
11 jun 2011
Berichten
36
Beste forumgebruikers,

Ik heb de volgende code gebruikt om een msgbox weer te geven wanneer de waarde in een cel kleiner word dan 0.
Soms kan het voorkomen dat de waarde al kleiner is dan 0. Indien er dan een waarde wordt ingevoerd, blijf ik de msgbox krijgen en loop ik dus vast.

Weet iemand wat ik kan veranderen zodat er nadat er op OK is geklikt, de code niet meer kijkt of de waarde kleiner is dan 0, maar dat dat pas weer gebeurd wanneer er (ergens anders) een nieuwe waarde wordt ingevoerd?

Code:
'Als de selectie groter is dan 1 cel, dan wordt deze macro uitgeschakeld
'Als het ingevoerde aantal in kolom 5 ("E") groter is dan het aantal van één cel links hiervan komt er een msgbox
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1:A999")) Is Nothing Or Target.Offset(0, -1).Value < 0 Then
        msgbox "Zoveel is er niet beschikbaar in deze periode! kies een ander aantal!", vbOKOnly, "Ander aantal kiezen!"
        Target.Value = ""
        Target.Cells.Offset(-1, 0).Select
    End If

Ik hoop dat jullie me kunnen helpen!
 
Kun je hiervoor niet beter een validatieregel gebruiken ?
 
Kun je hiervoor niet beter een validatieregel gebruiken ?

Dat vind ik een goed idee. Ik ben ook hard aan het zoeken hoe ik dat kan doen, alleen kan het nog niet erg vinden.
Is het mogelijk dat je me een tip/voorbeeldje kunt geven?
 
Had het inderdaad al gevonden. Zat binnen VBA te zoeken...
Soms denk je moeilijker dan nodig is :s

Alleen werkt dit helaas niet, omdat de waarde waarnaar hij verwijst zichzelf meteen aanpast zodra er een waarde wordt ingevoerd.
Dus dan geeft hij meteen een foutmelding, omdat de waarde dan verminderd is met het getal wat ingevoerd is en dan dus kleiner is.
 
Laatst bewerkt:
Ik heb het als volgt opgelost:

Code:
'Als de selectie groter is dan 1 cel, dan wordt deze macro uitgeschakeld
'Als het ingevoerde aantal in kolom 5 ("E") groter is dan het aantal van één cel links hiervan komt er een msgbox
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1:A999")) Is Nothing Or Target.Value <> "" And Target.Offset(0, -1).Value < 0 Then
        msgbox "Zoveel is er niet beschikbaar in deze periode! kies een ander aantal!", vbOKOnly, "Ander aantal kiezen!"
        Target.Value = ""
        Target.Cells.Offset(0, 0).Select
    End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan