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

Macro ongedaan maken

Status
Niet open voor verdere reacties.

Revolutionary

Gebruiker
Lid geworden
1 apr 2009
Berichten
183
Goedemiddag helpers,

Is het mogelijk om een macro te ontwikkelen die een zojuist uitgevoerde macro ongedaan maakt?

Ik ben bezig met het opstellen van een tabblad met ruim 60 macro buttons en nu kan het weleens voorkomen dat ik of een andere gebruiker perongeluk de verkeerde button indrukt, waardoor een verkeerde macro wordt uitgevoerd. Met CTRL+Z lukt het niet om een uitgevoerde macro terug te draaien dus ik vroeg mij af of het mogelijk is om een button met een macro te ontwikkelen die steeds de laatste actie ongedaan kan maken.

Groeten,
Tim
 
Tim,

Dit kan, maar elke macrohandeling moet je dan gaan terugdraaien, dus als je bv gegevens wist, moet je deze eerst in een variabele gaan bewaren. Dit is waanzinnig, bijna onbegonnen veel werk, zeker voor 60 macros
Misschien handiger is bij het indrukken van een knop, een waarschuwing geven in de aard van "ben je wel zeker dat je macro nr 17 wil uitvoeren". Als je dan op Annuleren drukt, gaat de macro niet door.

Gr,

Joske
 
Hangt er maar van af wat de macro waarvan je de actie ongedaan wenst te makene, heeft uitgevoerd.
Stel: je hebt met die macro de inhoud van een paar honderd cellen gewist, eventueel ook nog met formules in. Dan moet bij het uitvoeren van die macro de indoud van die cellen wel ergens opgeslagen worden hoor. Je kunt natuurlijk voor het uitvoeren van een macro het bestand (laten) opslaan, maar om dat telkens te doen voor zoveel macro's, het lijkt mij niet praktisch.
 
Beste Joske,

Bedankt voor je snelle reactie:thumb:
In dat geval ga ik even uitzoeken hoe ik die waarschuwing kan inbouwen.

Heeft iemand toevallig een dergelijke VBA-code bij de hand?

Groeten,
Tim
 
Beste Zapatr,

Ook bedankt voor jouw snelle reactie:thumb:
Ik ga nu eerst even proberen om die waarschuwingstekst in te bouwen, ik denk dat dan de meeste fouten wel kunnen voorkomen.

Tim
 
Een voorbeeldeje van een waarschuwing voorafgaand aan de uitvoering van een macro:

Code:
Private Sub CommandButton5_Click()
Dim response As VbMsgBoxResult
response = MsgBox("Met deze handeling verwijdert u alle variabele data uit het spreadsheet ten behoeve van de start van een nieuw jaar!! Het wissen heeft betrekking op het invoerblad, het facturenarchief de opdrachtgevers. Sla het bestand eerst op voordat u verder gaat! Weet u zeker dat u verder wilt gaan?", vbYesNo)

If response = vbYes Then
    
    Sheets("Invoerblad").Range("E4:K368").ClearContents
    Sheets("Invoerblad").Range("N4:O368").ClearContents
    Sheets("Invoerblad").Range("Q4:Q368").ClearContents
    
    MsgBox "Gegevens zijn gewist!", vbOKOnly
End If
If response = vbNo Then
    End
End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan