• 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 bij waarde verschil

Status
Niet open voor verdere reacties.

NiekvanMeer

Gebruiker
Lid geworden
30 sep 2013
Berichten
129
Beste allen,

Voor mijn werk ben ik op zoek naar een oplossing voor het volgende probleem.
In bijgevoegd bestand staat een deel van een sheet wat wij gebruiken.
Bekijk bijlage testplan.xlsm

De bedoeling is dat er waarschuwing komt, of een pop-up, wanneer G10 ingevuld wordt.
De waarschuwing of pop-up mag alleen verschijnen wanneer het verschil meer dan 50 is tussen G7(of G9) en F7(of F9)
Dit verschil mag dus 50 meer of minder zijn.

De waarschuwing of pop-up moet het volgende weergeven: "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor!"

Hopelijk weer iemand raad!

Vast bedankt :)

Groeten,
Niek
 
Wanneer moet nu die waarschuwing komen?
ALS F7-G7 <-50 of >+50
ALS F9-G9 <-50 of >+50
Is dit correct?
 
Hoi Cobbe,

De waarschuwing moet inderdaad komen wanneer het verschil tussen F7-G7 <-50 of >+50 is.
De kolom F en G strekken zich uit, in mijn werkbestand, van F10 tot F2010 en dus ook van G10 tot G2010.
Dus in principe moet de waarschuwing uiteindelijk komen wanneer het verschil tussen F10-G10 tot F2010-G2010 <-50 of >+50 is. (In mijn echte werkbestand)
Nu is dit dus alleen F7-G7 en F9-G9.
Maar dit 'echte' bestand is te groot om te uploaden.
 
Met Macro in workbook:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Abs(Sheets("Blad1").Cells(7, 6) - Sheets("Blad1").Cells(7, 7)) > 50 _
Or Abs(Sheets("Blad1").Cells(9, 6) - Sheets("Blad1").Cells(9, 7)) > 50 Then
MsgBox "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor!"
End If
End Sub
Bekijk bijlage 273891
 
Dit werkt zeker Gijsbert!
Bedankt!

Nu zou ik graag de macro aangepast zien voor mijn 'echte' werksheet. (Zoals in bovenstaand bericht staat)
Geciteerd:

De kolom F en G strekken zich uit, in mijn werkbestand, van F10 tot F2010 en dus ook van G10 tot G2010.
Dus in principe moet de waarschuwing uiteindelijk komen wanneer het verschil tussen F10-G10 tot F2010-G2010 <-50 of >+50 is. (In mijn echte werkbestand)
Nu is dit dus alleen F7-G7 en F9-G9.

Merci voor de hulp!

Maar dit 'echte' bestand is te groot om te uploaden.
 
Ik zou de code van Gijs zo aanpassen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Blad1")
If Not Intersect(Target, .Range("F10:G2010")) Is Nothing Then
 For Each cl In .Range("F10:F2010")
   If Abs(cl.Value - cl.Offset(, 1)) > 50 Or Abs(cl.Value - cl.Offset(, 1)) > 50 Then
    MsgBox "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor in cel ! " & cl.Address
   End If
 Next
End If
End With
End Sub
 
Laatst bewerkt:
Hm,

Dit lijkt niet te werken Cobbe.
Misschien dat ik iets verkeerd doe?
Ik implementeer deze code ook in ThisWorkbook, maar bij een verschil waarde gebeurd er niks
 
Niet in ThisWorkbook maar achter het betreffende werkblad plakken.
 
Hoi,

Dat werkt inderdaad wel.
Helaas wordt ik dan doorgestuurd naar vba omdat de volgende regel een foutmelding geeft

If Abs(cl.Value - cl.Offset(, 1)) > 50 Or Abs(cl.Value - cl.Offset(, 1)) > 50 Then
 
Wil je door u gebruikte code eens posten?
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Blad1")
If Not Intersect(Target, .Range("D10:E2010")) Is Nothing Then
 For Each cl In .Range("D10:D2010")
   If Abs(cl.Value - cl.Offset(, 1)) <> 50 Or Abs(cl.Value - cl.Offset(, 1)) > 50 Then
    MsgBox "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor!"
   End If
 Next
End If
End With
End Sub

Hierbij is D nu de oude F kolom en E is de oude G kolom.
Dat heb ik dus in de formule aangepast.
 
Probeer het zo eens:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Blad1")
If Not Intersect(Target, .Range("D10:E2010")) Is Nothing Then
 For Each cl In .Range("D10:D2010")
   If Abs(cl.Value - cl.Offset(, 1)) > 50 Or Abs(cl.Value - cl.Offset(, 1)) > 50 Then
    MsgBox "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor in cel ! "
   End If
 Next
End If
End With
End Sub
 
Nieuwe poging:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Sheets("Blad1").Range("D10:E2010")) Is Nothing Then
  With Target
   If Abs(Target - Target.Offset(, 1)) > 50 Or Abs(Target.Offset(2, 0) - Target.Offset(2, 1)) > 50 Then
    MsgBox "Is er sprake van versleping? Zo ja, vul de TP waarde in van de nareactor in cel ! " & cl.Address
   End If
End If
End Sub
 
Bij de nieuwe poging geeft hij meteen een foutmelding.

"Compileerfout! End if zonder blok if"
 
Tussen de 2 End If moet End With komen. sorry
 
Laatst bewerkt:
Hoi Cobbe,

Dit inderdaad toegevoegd.
Nu gaf hij een foutmelding waarin stond "object vereist"
Hierna heb ik het deel & cl.Address verwijderd na de msgbox.
Nu werkt hij geheel naar behoren!

Enorm bedankt voor de goede hulp!

Groeten,
Niek
 
Ik ben iets te voorbarig geweest haha.
Hij werkt, maar hij ziet het verschil van minimaal 50 niet meer merk ik nu op.
Ook bij eenzelfde ingevulde waarde komt de melding...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan