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

Pop up scherm

Status
Niet open voor verdere reacties.

steelgate

Gebruiker
Lid geworden
7 jan 2015
Berichten
64
Is er een mogelijkheid dat er een pop up scherm te voorschijn komt als vb. een bedrag in een cel hoger is een 500€ (dat je in dat scherm een tekst verschijnt)

Ik bedoel geen opmerking.
 
Ja, met een VBA routine Worksheet_Change, controle op het adres van de cel en een MessageBox.
 
Ja, met een VBA routine Worksheet_Change, controle op het adres van de cel en een MessageBox.

oei, van VBA ken ik veel te weinig van. Bestaat er ergens geen code die kan kopieëren? Dat ik gewoon de cel en tekst kan aanpassen?
 
Als je een voorbeeld documentje plaatst wordt het zo voor je gemaakt.
 
Mij lijkt het gebruik van data validation voor-de-hand-liggender.
 
Aan je document te zien bedoel je niet "alle maanden" maar "per maand".
Klopt dat?
 
Qua VBA is dit het simpelst. Plaats de code achter het werkblad blanco:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Const Storten = 500
    
    If Range("Q10").Value > Storten Then MsgBox "Januari", vbInformation + vbOKOnly
    If Range("Q46").Value > Storten Then MsgBox "Februari", vbInformation + vbOKOnly
    If Range("Q82").Value > Storten Then MsgBox "Maart", vbInformation + vbOKOnly
    If Range("Q118").Value > Storten Then MsgBox "April", vbInformation + vbOKOnly
    If Range("Q154").Value > Storten Then MsgBox "Mei", vbInformation + vbOKOnly
    If Range("Q190").Value > Storten Then MsgBox "Juni", vbInformation + vbOKOnly
    If Range("Q226").Value > Storten Then MsgBox "Juli", vbInformation + vbOKOnly
    If Range("Q262").Value > Storten Then MsgBox "Augustus", vbInformation + vbOKOnly
    If Range("Q298").Value > Storten Then MsgBox "September", vbInformation + vbOKOnly
    If Range("Q334").Value > Storten Then MsgBox "Oktober", vbInformation + vbOKOnly
    If Range("Q370").Value > Storten Then MsgBox "November", vbInformation + vbOKOnly
    If Range("Q406").Value > Storten Then MsgBox "December", vbInformation + vbOKOnly
End Sub
 
Qua VBA is dit het simpelst. Plaats de code achter het werkblad blanco:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Const Storten = 500
    
    If Range("Q10").Value > Storten Then MsgBox "Januari", vbInformation + vbOKOnly
    If Range("Q46").Value > Storten Then MsgBox "Februari", vbInformation + vbOKOnly
    If Range("Q82").Value > Storten Then MsgBox "Maart", vbInformation + vbOKOnly
    If Range("Q118").Value > Storten Then MsgBox "April", vbInformation + vbOKOnly
    If Range("Q154").Value > Storten Then MsgBox "Mei", vbInformation + vbOKOnly
    If Range("Q190").Value > Storten Then MsgBox "Juni", vbInformation + vbOKOnly
    If Range("Q226").Value > Storten Then MsgBox "Juli", vbInformation + vbOKOnly
    If Range("Q262").Value > Storten Then MsgBox "Augustus", vbInformation + vbOKOnly
    If Range("Q298").Value > Storten Then MsgBox "September", vbInformation + vbOKOnly
    If Range("Q334").Value > Storten Then MsgBox "Oktober", vbInformation + vbOKOnly
    If Range("Q370").Value > Storten Then MsgBox "November", vbInformation + vbOKOnly
    If Range("Q406").Value > Storten Then MsgBox "December", vbInformation + vbOKOnly
End Sub

Yes, is gelukt. Merci.
Alleen bij 750 komt er geen pop up, vanaf 751 wel, kan je dit aangepast worden?
 
Dat werkt hier prima in je eigen document, dus waarom dat bij jou zo is kan ik zo niet zeggen.
 
Dat werkt hier prima in je eigen document, dus waarom dat bij jou zo is kan ik zo niet zeggen.

Kweet hoe het komt bij u. Ik heb de 500 veranderd naar 750.
Als je bij u 500 zou typen dan kom er ook geen pop up, wel vanaf 501.

Zie nog een probleem: als je bij februari gelijk wel getal typ bij kolom B, krijg je de pop up van januari te zien.
 

Bijlagen

Dat komt omdat je in je eerste vraag zei dat het groter moet zijn dan 500 in plaats van groter dan of gelijk aan 500.
Wijzig dan het > teken in >=

Dat laatste komt omdat telkens iedere maand wordt gecontroleerd.
Je zal dus preciezer moeten aangeven wat de wens is.
Daarom had ik in de eerste code ook het woordje "simpel" gebruikt.
 
Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target > 500 Then MsgBox Application.GetCustomListContents(4)(Int(Target.Row / 36))
End Sub
 
Laatst bewerkt:
De enige echte popup als de waarde tussen 500 en 750 ligt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column & (Target.Row - 10) Mod 36 & Target \ 250 = "1702" Then CreateObject("wscript.shell").popup Application.GetCustomListContents(4)(Target.Row \ 36 + 1), 1
End Sub


@HSV
- de customlist: kan zonder split en join, want de customlist is al een array.
- de VBA operator \ wil niet beklijven ?
 
Laatst bewerkt:
Bedankt iedereen voor jullie hulp en weer wat bij geleerd. :thumb:
Nu werkt alles goed.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan