Goedemorgen allen,
Ik heb een probleempje met een niet altijd werkende MSG BOX.
In kolom F staat het totale factuurbedrag in formulevorm.
Deze formule mag overschreven worden, maar alleen bewust.
Bij een verandering in deze cel moet er een MSG BOX naar voren komen of de formule ook echt overschreven moet worden.
De code die ik aan het blad toe heb gevoegd checkt het volgende:
Is er na de aanpassing nog een formule aanwezig?
NEE? Dan moet de melding komen of de formule ook echt overschreven moet worden.
Indien de formule overschreven moet worden: Selecteer de cel en dan is de cel beschrijfbaar
Indien de formule niet overschreven moet worden: Zet de formule weer terug.
Ik heb er bewust voor gekozen om de MSG BOX te laten verschijnen na een aanpassing van de waarde en niet al bij het selecteren van de cel.
Gezien de opbouw van het bestand is dat namelijk onhandig.
Met de onderstaande code werkt die helaas maar voor de helft.
Wanneer ik de formule verwijder door DELETE te gebruiken krijg ik de MSG BOX zoals verwacht.
Echter als ik de formule direct overschrijf met een harde waarde, verschijnt de MSG BOX niet, terwijl er na de aanpassing geen formule aanwezig is.
Weet iemand wat ik verkeerd doe?
Zie de code hieronder en ook in het (vereenvoudigde) voorbeeldbestandje.
Alvast bedankt voor de hulp!
Bekijk bijlage Voorbeeld MSG BOX.xlsm
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
'Range buiten bereik uitsluiten
If Not Intersect(ActiveCell, Range("F9:F20")) Is Nothing Then
'Check op formule
If ActiveCell.HasFormula = False Then
'Geen formule dan MSG BOX
Dim answer15 As Integer
answer15 = MsgBox("Weet je zeker dat je de formule wilt overschrijven?", vbYesNo + vbQuestion, "Formule overschrijven")
'Formule wel overschrijven, dan actieve cel selecteren
If answer15 = vbYes Then
ActiveCell.Select
'Formule niet overschrijven, herstel formule
Else:
ActiveCell.Select
Application.Undo
End If
End If
End If
Application.ScreenUpdating = True
End Sub
Ik heb een probleempje met een niet altijd werkende MSG BOX.
In kolom F staat het totale factuurbedrag in formulevorm.
Deze formule mag overschreven worden, maar alleen bewust.
Bij een verandering in deze cel moet er een MSG BOX naar voren komen of de formule ook echt overschreven moet worden.
De code die ik aan het blad toe heb gevoegd checkt het volgende:
Is er na de aanpassing nog een formule aanwezig?
NEE? Dan moet de melding komen of de formule ook echt overschreven moet worden.
Indien de formule overschreven moet worden: Selecteer de cel en dan is de cel beschrijfbaar
Indien de formule niet overschreven moet worden: Zet de formule weer terug.
Ik heb er bewust voor gekozen om de MSG BOX te laten verschijnen na een aanpassing van de waarde en niet al bij het selecteren van de cel.
Gezien de opbouw van het bestand is dat namelijk onhandig.
Met de onderstaande code werkt die helaas maar voor de helft.
Wanneer ik de formule verwijder door DELETE te gebruiken krijg ik de MSG BOX zoals verwacht.
Echter als ik de formule direct overschrijf met een harde waarde, verschijnt de MSG BOX niet, terwijl er na de aanpassing geen formule aanwezig is.
Weet iemand wat ik verkeerd doe?
Zie de code hieronder en ook in het (vereenvoudigde) voorbeeldbestandje.
Alvast bedankt voor de hulp!
Bekijk bijlage Voorbeeld MSG BOX.xlsm
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
'Range buiten bereik uitsluiten
If Not Intersect(ActiveCell, Range("F9:F20")) Is Nothing Then
'Check op formule
If ActiveCell.HasFormula = False Then
'Geen formule dan MSG BOX
Dim answer15 As Integer
answer15 = MsgBox("Weet je zeker dat je de formule wilt overschrijven?", vbYesNo + vbQuestion, "Formule overschrijven")
'Formule wel overschrijven, dan actieve cel selecteren
If answer15 = vbYes Then
ActiveCell.Select
'Formule niet overschrijven, herstel formule
Else:
ActiveCell.Select
Application.Undo
End If
End If
End If
Application.ScreenUpdating = True
End Sub
Laatst bewerkt: