enregistrement modification automatique vba

  • Initiateur de la discussion dIDIER 2
  • Date de début
D

dIDIER 2

Guest
bonjour le forum

j'aimerais faire un enregistrement automatique a la fermeture du classeur (jusque la ,je sais faire).
Mais cet enregistrement, ne doit se déclencher que si l'on a fait des modifications dans les différentes pages. A savoir remplir une ou des cellules .
Si la personne n'a fait que regarder le classeur ou séléctionner des cellules sans aucunes modifs, il ne doit pas y avoir d'enregistrement automatique (car celui-i est trés long a enregistrer).

merci pour votre aimable aide.

crdlmt
Dídíer 2
 
V

Valérie

Guest
Salut Didier2, et le forum,

A l'aide d'une varaible tu peux tester les changements, dans ThisWorkbook


[g]Dim CHGMT As Boolean[/g] 'déclaration hors sub pour tous

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If CHGMT Then ActiveWorkbook.Save
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
CHGMT = True
End Sub

ATTENTION cela fonctionne qu'en cas de changement des cellules dans une feuille et non pas en cas de changement relatif à la feuille (nom, ajout, suppression)

Sinon il faudra CHGMT = True sur les évènements concernés

Bon app'
Valérie
 
V

Valérie

Guest
salut le forum et Mytå (espécialiste des variables!!),

Didier 2 pour plus d'explication,

Dans le cas en exemple pas besoin de public car il ne sort pas du module, il déclare en général (en dehors de quelque sub que ce soit) mais en Dim car pas besoin de CHGMT ailleurs.

Si toutefois les tests ne suffisaient pas dans ThisWorkbook là oui il faudrait déclarer ta variable en Public afin d'y avois accès partout et en garder la valeur. Voilà pour Public!

@ bientôt
Valérie
 

Discussions similaires

Réponses
8
Affichages
786

Statistiques des forums

Discussions
314 017
Messages
2 104 578
Membres
109 081
dernier inscrit
Vio21