tibogl
Messages postés42Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention25 avril 2006
-
4 août 2005 à 17:41
Motoreador
Messages postés2Date d'inscriptionjeudi 4 août 2005StatutMembreDernière intervention 4 août 2005
-
4 août 2005 à 18:38
Bonjour,
je souhaiterais créer une macro qui lors de la sauvegarde du fichier, inscrit sur une feuille les modifications qui ont été faites au fichier depuis la sauvegarde précédente.Si les modification ne peuvent pas etre énumérées, juste énumérer les onglets ayant été modifiés pourrait etre suffisant.
Est-ce possible?
Si oui pourriez vous me dire comment?
Merci d'avance
florantanplan
Messages postés76Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 8 septembre 2006 4 août 2005 à 17:51
Bonjour,
Sur l'évènement "Open" de ton workbook, tu garde dans une variable publique la liste de tes sheets, puis à l'évènement "Before save" tu la compare avec ceux présent.
florantanplan
Messages postés76Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 8 septembre 2006 4 août 2005 à 18:13
Ah ba évidemment, il faut savoir coder en VBA
Quand tu vas dans l'éditeur de code, il y a, dans l'explorateur de projet, la liste de tes classeur. Pour chacun d'entre eux il y a la liste des feuilles et un élément nommé "ThiWorkBook". Tu double click dessus. Ensuite au dessus de lapage où on code, il y a deux listes déroulantes. Dans celle de gauche, tu sélectionne "Workbook". Dans celle de droite, tu sélectionne "SheetChange". Cela te génèrera le cadre de ton évènement. Après, à toi de coder à l'intérieur...
tibogl
Messages postés42Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention25 avril 2006 4 août 2005 à 18:17
Merci je vais tacher de faire ca.Si j'ai bien compris, je ne pourrais pas savoir si la page a été modifiée, je saurais simplement qu'elle a été modifiée c 'est bien ca?
florantanplan
Messages postés76Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 8 septembre 2006 4 août 2005 à 18:21
voilà la ligne d'en-tête de cet évènement:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Comme tu peux le voir elle t'envoie 2 variable:
-sh t'envoie une référence à l'objet Sheet qui a été modifié, donc tu peux retrouver son nom avec sa propriété name.
-Target te renvoie une référence vers un objet range qui représente la(les) cellule(s) en cours de modification.
Tu sais donc exactement ce qui est en cours de modif.