Est-ce possible de vérifier si des modifications ont été apportées aux classeurs

Damorek

XLDnaute Nouveau
Bonjour,

En chercher sur internet et en fouillant sur quelques forums, je n'ai pas été en mesure de répondre à ma question.

J'aimerai pouvoir trouver un moyen (en VBA) de savoir si des modifications ont été apportées aux classeurs.... comme lorsqu'on essaye de quitter le classeur sans avoir enregistrer au préalable.... mais sans l'action de vouloir quitter le classeur.

Sans rentrer dans les détails, je veux pouvoir empêcher un utilisateur de changer de feuille (worksheets) dans un meme classeur (workbook) s'il n'a pas au préalable enregistrer les informations contenu dans la feuille (activesheet) sur lequel il se trouve.

Pourquoi? Car dans chaque feuille, j'ai inséré un bouton "ENREGISTRER" qui lorsqu'il est activé, il exporte automatiquement certaines informations de la feuille (activesheet) vers une autre feuille qui compile des informations.

En plus simple, je veux simplement savoir la ligne de code à rentrer (s'il en existe un) pour savoir (True or False) si le classeur a été modifié depuis la derniere sauvegarde.... de cette facon je vais pouvoir empêcher l'utilisateur de changer de feuille en lui affichant un MSGBOX du style "VEUILLEZ ENREGISTRER LES MODIFICATIONS APPORTÉES À LA FEUILLE"

Je ne sais pas si c'est clair mais c'est ca :)

Merci encore pour votre aide précieuse
 

Excel-lent

XLDnaute Barbatruc
Re : Est-ce possible de vérifier si des modifications ont été apportées aux classeurs

Bonjour Damorek,

Beaucoup plus simple, et t'évitant ainsi tous ces boutons sur toutes ces feuilles :

-> à chaque fois que l'utilisateur changera d'onglet : lui demander s'il a pensé à enregistrer son travail? Sinon, lancer automatiquement l'enregistrement (qu'il ait fait ou non des modifications).
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Avant de changer d'onglet, veuillez attendre le temps que les modifications apportées soient enregistrées"
'Ton code d'enregistrement / exportation de données
End Sub

-> avant que l'utilisateur quitte le fichier, faire de même
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Avant de quitter le fichier, veuillez attendre le temps que les modifications apportées soient enregistrées"
'Ton code d'enregistrement / exportation de données
End Sub

Ainsi plus besoin des boutons "enregistrer" car quoi qu'il fasse, le fichier sera de toute façon enregistrer/données exporter. Evitant ainsi les risque d'oubli de sauvegarde, et moins de travail à l'utilisateur :)

Bonne soirée
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
488