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

Status
Niet open voor verdere reacties.

Esducsafe

Gebruiker
Lid geworden
2 sep 2009
Berichten
185
Als de Som B6 van de ingevoerde bedragen (B1:B5) groter is dan in A6
moet er een bericht verschijnen met een melding dat ingevoerde waarde groter is.
Tot zover werkt de Pop Up (Msg)
Na de melding moet het bericht gesloten worden en niet meer verschijnen.
Het lukt mij niet om dit in de code op te nemen.
Tevens zou de Pop Up op een andere plek moeten verschijnen. Wie weet raad?
Alvast bedankt.
Met vriendelijke groet,
Esko

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim SelectedCell As String

    If [A6] >= [B6] Then
 Else: MsgBox ("Onjuiste invoer"), vbOKOnly
 End If
End Sub
 

Bijlagen

  • PopUpsom.00.xls
    31,5 KB · Weergaven: 34
Bedoel je zoiets ?

Beste Jacques,
Bedankt voor je reactie. Het is helemaal wat ik bedoel. Waarde uitkomst B7 moet gecontroleerd worden a.d.h.v A7. In jouw bewerking is dit net anders om. Ik heb geprobeerd door het veranderen van de waarden of het mij zou lukken, maar helaas. Heb je nog een idee om de aanpassing zo te maken, zodat waarde B7 met A7 wordt vergeleken?
groet,
Esko
 
Laatst bewerkt:
Beste Jaques,
Bedankt voor je reactie. Het is helmaal wat ik bedoel. Waarde uitkomst B7 moet gecontroleerd worden a.d.h.v A7. In jouw bewerking is dit net anders om. Ik heb geprobeerd door het veranderen van de waarden of het mij zou lukken, maar helaas. Heb je nog een idee om de aanpassing zo te maken, zodat waarde B7 met A7 wordt vergeleken?
groet,
Esko

Ok, hierbij nieuwe versie, trouwens als je ALT+F11 indrukt, kun je de code zien, die snap je vast wel.
 

Bijlagen

  • PopUpsom.00 (1).xls
    30,5 KB · Weergaven: 51
Beste Jacques,
Het nieuwe bestandje getest. Ik zag dat je nu een oplossing met Valideren had toegevoegd.Dit werkt uiteraard in het gegeven voorbeeld.Echter het moet een VBA code zijn, omdat bedoelde invoercontrole deel uit maakt van een groter geheel.
Bedankt en met vriendelijke groet,
Esko

Huh, ik heb helemaal niets met valideren toegevoegd !
 
Val je gebruikers zo min mogelijk lastig met meldingen.
Ondersteun ze liever bij de invoer zoals op deze manier:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [B1:B5]) Is Nothing Then
    With Cells(6, 1).Validation
      .Delete
      .Add xlValidateList, , xlBetween, Join(WorksheetFunction.Transpose(Evaluate("Row(1:" & WorksheetFunction.Sum([B1:B5]) & ")")), ",")
    End With
  End If
End Sub
 
Beste Jacques,
Ik moet me in de drukte vergist hebben, excuus. Ik ga nog eens met je opzet aan de gang.
Esko

Ik zie nu wat je bedoelt, die validatie is een overblijfsel uit jouw voorbeeld :)

Hierbij de juiste versie.
 

Bijlagen

  • PopUpsom.00 (1).xls
    30,5 KB · Weergaven: 55
zet eens getallen in kolom B in plaats van nullen.
 
Na het nodige zoekwerk heb ik onderstaande oplossing voor mijn vraag uitgewerkt. Op basis van een paar testjes werkt de code goed. Alleen wordt bij het verwijderen van een Rij of Kolom de macro geactiveerd en volgt de melding MsgBox. Dit nog niet opgelost.
Allemaal bedankt voor jullie inbreng.
Met vriendelijke groet.
Esko

Code:
Private Sub Worksheet_Calculate()
On Error GoTo Eind
    If [B6] >= [A6] Then
    MsgBox "Onjuiste invoer Wilt u doorgaan?", vbOKOnly
    End If
Eind:
End Sub

Esko,

Ik heb een perfect werkend voorbeeld gepost, waarom dan nog niet opgelost.

PS in mijn voorbeeld is het A7 en B7 want daar vroeg je om.
 
Esko,

Ik heb een perfect werkend voorbeeld gepost, waarom dan nog niet opgelost.

PS in mijn voorbeeld is het A7 en B7 want daar vroeg je om.

Beste Jacques,
Klopt: je voorbeeld werkt (volgens mij) alleen als in B7 een groter getal wordt ingevuld. Echter,in B7 moet de som van B1-B6 komen en deze uitkomst moet dan met A7 vergeleken worden. Zo juist nog getest.
groet,
Esko
 
Laatst bewerkt:
Beste Jacques,
Klopt: je voorbeeld werkt (volgens mij) alleen als in B7 een groter getal wordt ingevuld. Echter,in B7 moet de som van B1-B6 komen en deze uitkomst moet dan met A7 vergeleken worden. Zo juist nog getest.
groet,
Esko

Esko, je kan toch wel een beetje code lezen ? pas de intersect range aan en het doet wat je wil.

Maak er dit van:
.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A7", "B1:B7")) Is Nothing Then
If [B7] > [A7] Then MsgBox ("Onjuiste invoer"), vbOKOnly
End If
End Sub
 
Laatst bewerkt:
Esko, je kan toch wel een beetje code lezen ? pas de intersect range aan en het doet wat je wil.

Maak er dit van:
.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A7", "B1:B7")) Is Nothing Then
If [B7] > [A7] Then MsgBox ("Onjuiste invoer"), vbOKOnly
End If
End Sub


Beste Jacques,
Zoals je al veronderstelde kan ik codes nog niet goed lezen. Nogmaals mijn excuses. Je code werkt nu prima. Weer wat geleerd. Hartstikke bedankt.
Met vriendelijke groet,
Esko
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan