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

procedure maakt ongedaan maken niet meer mogelijk

Status
Niet open voor verdere reacties.

gGerretje

Gebruiker
Lid geworden
12 mrt 2008
Berichten
476
Beste helpers,

Ik heb een bestand waarbij ik mijn verzameling bieretiketjes bijhoud.
Het komt erop neer dat ik in kolom K een kruisje zet bij het bier waarvan ik een etiketje heb.
Nou kan ik natuurlijk het aantal van die brouwerij automatisch bijhouden.
En om controle mogelijk te maken tel ik ook meteen het aantal etiketjes van brouwerijen die met een A beginnen.
Ook dat kan ik automatisch doen maar ik kies ervoor om dat handmatig te doen.
Op die manier kan ik nooit per ongeluk ergens een kruisje zetten en dat mijn totaaltelling dan niet meer klopt.

Maar nu heb ik een procedure geschreven die mij ook nog even visueel maakt dat ik op twee plaatsen de aantallen handmatig moet wijzigen.
Zodra ik in kolom K een kruisje plaats wordt cel B3 (het totaal van kolom K) vergeleken met B2 (het totaal van kolom F) en B1 (het totaal van kolom E)
Dus heb ik een nieuw etiketje van een biertje (kolom L) dan zet ik een kruisje ervoor (kolom K) en dan wordt cel C1 rood.
Deze blijft rood totdat ik de totalen van kolom E en F handmatig heb aangepast.


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("B3").Value <> Range("B2").Value Or Range("B3").Value <> Range("B1") Then
        Range("C1").Interior.Color = 255
    Else
        Range("C1").Interior.Color = 8421504
    End If
End Sub


Maar nu het probleem.
Als ik per ongeluk iets in kolom K zet (daar was de procedure voor bedoeld) wordt C1 netjes rood, maar zou ik graag mijn fout ongedaan maken door op de betreffende knop ongedaan maken te klikken.
Die werkt echter niet meer (vanwege die procedure). In de volledige versie van mijn bestand werd niet de laatste actie ongedaan gemaakt, maar de actie daarvoor (bijvoorbeeld tekst typen in een andere cel, niet in kolom K).
Kan ik dat ergens corrigeren?

Bijgaand een verkort voorbeeld van mijn bestand.
Bekijk bijlage Brouwerijen_test.xlsmBekijk bijlage Brouwerijen_test.xlsm
 
Laatst bewerkt:
Je kunt niet iets ongedaan maken als de macro iets heeft veranderd in dat werkblad. En de macro doet altijd wat in dat werkblad zodra je iets aanpast, namelijk een cel rood of grijs maken. Ook als die al rood of grijs was.

Behalve dit niet doen in een macro, maar in voorwaardelijke opmaak (wat me verreweg de handigste oplossing lijkt eigenlijk) is er ook de optie om gewoon niet iets in je werkblad te wijzigen maar gewoon een popup te creëren als je iets fout doet.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("B3").Value <> Range("B2").Value Or Range("B3").Value <> Range("B1") Then
        MsgBox ("He doe eens niet")
    End If
End Sub

Dit zou de undo mogelijk moeten maken.
 
De eerste oplossing van ZiGZaG37 is het helemaal. Het is even out-of-the-box als je net een leuke procedure gemaakt hebt.
Maar met voorwaardelijke opmaak gaat het lukken.
Die pop-up kan ook hoor, maar dan moet ik die ook telkens wegklikken (ik doe overigens niets verkeerd, want vrijwel altijd denk ik er wel aan om die twee andere cellen handmatig aan te passen).
Met een rode cel zie ik het vanuit mijn ooghoeken maar kan ik gewoon verder.
Die oplossing van ExcelAmateur ga ik zeker uitproberen. En ook ergens in mijn notities opslaan want die kan nog wel eens heel goed van pas komen.

Mijn vraag is opgelost.
Beide helpers super bedankt.

Met vriendelijke groeten,
Ger
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan