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

Vorige waarde cel opvragen in VBA

Status
Niet open voor verdere reacties.

Stone52

Gebruiker
Lid geworden
11 dec 2004
Berichten
320
Excellers,

Een uitdaging voor de experts ?

Op een werkblad staat in een cel een waarde (bv 01-03-2005); als ik een andere waarde in deze cel ingeef (bv. 04-03-2005) dan geef ik via MSGBOX de keuze of met de opgegeven waarde verder gewerkt moet worden. Als het antwoord "nee" via de MSGBOX wordt gegeven dan laat ik de macro stoppen. Echter, in de cel staat dan de opgegeven waarde (04-03-2005).

Vraag: hoe kan ik, als via de MSGBOX "nee" wordt opgegeven, de oude / oorspronkelijke waarde (01-03-2005) terug in de cel krijgen ?
 
Laatst bewerkt:
waarde bewaren

Ik denk dat de werkwijze zou moeten zijn dat je de macro begint met het opvragen van de huidige waarde (dus vóór wijziging) die je tijdelijk plaatst in een variabale. Afhankelijk van de uitkomst van je huidige macro blijft dan de nieuwe waarde staan of wordt de waarde van de variabele opgevraagd en teruggeplaatst.
 
Het principe is mij duidelijk echter de vraag hoe dit te realiseren blijft staan. Heb je een voorbeeld ?
 
Hallo Luc,


Dit is nog niet wat ik zoek. Ik heb een werkblad met daarop veel (ca. 15) parameters. In het werkblad wordt gebruik gemaakt van "Worksheet_Change". Zodra het eerder genoemde datumveld verandert wordt een macro actief. Een van de mogelijkheden (als de ingevulde datum vóór de oude datum ligt) is dat er een MSGBOX met keuze Ja/Nee wordt getoond. Indien daar op Nee (= stoppen verwerking) wordt geklikt dan wil ik de oude / oorspronkelijke datum weer terug hebben. Ik ben dus op zoek naar de mogelijkheid om de oude datum terug te halen.
 
Gebruik Ongedaan maken

Plaats code in module ThisWorkbook en bestuur code.

---

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

' Prevent procedure to ask question again when Undo-method is invoked
Static blnContinue As Boolean

If Target.Address = "$B$2" Then

If blnContinue Then
' Clear variable
blnContinue = False
Else
Beep
If MsgBox("Nieuwe waarde gebruiken?", vbDefaultButton2 + vbYesNoCancel + vbQuestion) <> vbYes Then
blnContinue = True
Application.Undo
End If
End If

End If

End Sub
 
Laatst bewerkt:
Frits,


Dank je wel voor de reactie. De Application.Undo is, na wat experimenteren, het antwoord op de vraag. Bedankt voor de genomen moeite !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan