• 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 starten bij afsluiten excel mits er wijzigingen zijn aangebracht

Status
Niet open voor verdere reacties.

Peer44

Gebruiker
Lid geworden
25 jan 2008
Berichten
224
Hallo,

graag wil ik het volgende voor elkaar krijgen:

als excel afgesloten wordt dient automatisch een macro gestart te worden, Mits er wijzigingen zijn aangebracht op blad 1:
Betreft bereik "A5:T43"

Indien geen wijzigingen aangebracht dan hoeft macro niet gestart te worden.

Zijn er wijzigingen aangebracht dan wil ik een andere macro laten starten.
Tevens dient een MsgBox getoond te worden met het aantal wijzigingen dat is gedaan.

Het aantal wijzigingen moet geteld worden op rij-niveau dus als a5, b5, en cel c5 gewijzigd wordt dan geldt dit als 1 wijziging.
wordt a5 en a6 gewijzigd dan zijn dit 2 wijzigingen.
Bereik is "A5:T43"

Wat ik weet is dat ik de macro moet laten aanroepen vanuit:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

en de wijzigingen moet laten tellen in
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Wat ik helaas nog niet weet is hoe ik tot het gewenste resultaat kom.

hopelijk kan iemand mij verder helpen.

bij voorbaat dank.
 
Wijzigingen kun je nagaan met workbook.saved
Zie de help of
msdn (engels)

Mvg Leo
 
Ter aanvulling
Het event Worksheet_Change wordt aangeroepen bij een wijziging.
Bij target kun je de range waar de verandering plaats vond nagaan.
Met een Public teller kun je vervolgens het aantal wijzigingen tellen.

Blijft dit onduidelijk? post dan een voorbeeld van wat je precies wil.

Mvg Leo
 
Beste Leo,

ik kom er helaas niet aan uit......

als bijlage een voorbeeldbestandje

dit betreft een verkoopoverzicht er wordt voor iedere dag een nieuw excel bestand gemaakt.
er moet een macro gestart worden als er een wijziging heeft plaatsgevonden op blad 1 range ("a2: c10") voordat het bestand wordt afgesloten (beforeclose)

de macro die gestart moet worden roep ik aan via "call test" (niet bijgevoegd)

Er zijn gebruikers die alleen het document inzien dus geen wijzigingen doorvoeren dan moet de macro niet gestart worden.
Wat ik als mooie toevoeging graag zou willen zien is een pop-up voor het sluiten van het bestand met het aantal wijzigingen dat zijn gemaakt op regelniveau
dus wijzigt cel a2, b2, c2 is dan 1 wijziging.

Dit heb ik nu maar werkt nog niet
Option Explicit

Public Sub Workbook_BeforeClose(Cancel As Boolean)

If Not ActiveWorkbook.Saved Then
Sheets("invulblad").Select
If IsEmpty("B5") = False Then Call kopieren_naar_DB

End If

End Sub


hoop dat het duidelijk is.
 

Bijlagen

Laatst bewerkt:
Lijkt erop dat het eindelijk gelukt is:D

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Not ActiveWorkbook.Saved Then
    Call Macro1
    
    MsgBox "mutaties toegevoegd aan database."
    ActiveWorkbook.Save
End If

End Sub

nu alleen de teller nog....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan