Historique des modifications de cellules dans un fichier

skoobi

XLDnaute Barbatruc
Bonjour tout le monde,

la petite appli de Bruno ici m'a donné une idée: pouvoir lister sur une feuille toutes les modifications faites sur les cellules des autres feuilles du fichier.
Le principe: dès q'une opération sur une (ou plusieurs cellules) est faite on garde une trace de cette opération dans une feuille spécifique grace aux macros événementielles Change et SelectionChange.
Dans la pièce jointe, cette feuille s'appelle "hist".
Voici les opérations actuellement prises en compte:
- saisie dans une cellule
- couper/copier de cellule ou plage
- insertion/suppression de ligne/colonne
- insertion/suppression de cellule ou plage
- glissement/déplacement de cellule (ne peut se faire que par Edition/remplissage)
Certaines propriétés de la cellule sont également enregistrés (police et couleur de fond pour l'instant) en sélectionnant une autre cellule après ces modifications.
A ce stade, pour l'utilisation que j'en fais, cela me suffit mais au cas ou ça vous intéresse et que vous souhaiteriez "tracer" d'autres propriété de cellule (taille, format de nombre, bordure,etc) ou pouvoir choisir par exemple les feuilles à "historiser" ou autre chose, faites signe.

Petite précision: pour le bon fonctionnement du programme, les options "glissement-déplacement de la cellule" et "déplacer la sélection après validation" (onglet modification) sont désactivés à l'ouverture du fichier.
Le "glissement-déplacement" est toujours faisable via Edition/remplissage.

Bon après-midi à vous.

Edit: fichier remplacé suite au bug signalé par Hasco
Edit2: nouvelle version détaillant la copie multiple et détection des formules
Edit3: prise en compte des commentaires de cellule
Edit4: fusion de cellule détectée, ajout d'une boite de dialogue
Edit5: fichier final: SuiviCell v1: lancement depuis le menu "perso" créé à l'installation du xla, les explications ici
Edit6: v1.1: "glissement/déplacement" et "déplacer cellule après validation" détecté + bug de copier/coller corrigé
 

Pièces jointes

  • SuiviCell_v1.1.zip
    72.8 KB · Affichages: 1 872
Dernière édition:
G

Guest

Guest
Re : Historique des modifications de cellules dans un fichier

Hello Skoobi,

Super sympa comme truc!:)

J'ai toutefois une erreur si je fais un click-droit pour insérer une cellule ou plage de cellules.

Erreur 424: objet requis
Procedure: DetecInsSuppCell

sur la ligne en gras :
Code:
Test = CellD.Address
If Err.Number > 0 Then
  On Error GoTo 0
  LastChange = "I"
  Debug.Print "insertion de cellule plus décalage vers la droite"
  With Sheets("Hist")
   [B].Range("A65536").End(xlUp).Offset(1).Value = Sh.Name[/B]
    .Range("A65536").End(xlUp).Offset(0, 1).Value = "insertion de cellule plus décalage vers la droite sur la plage: " & Selection.Address(0, 0)
  End With

Je suppose que sh n'est pas dénifit à ce moment là.

bonne continuation

A++
 

skoobi

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Salut Ges :),

Oupppsss, une modification de dernière minute et voilà ce qui se passe sans tester :D, merci!
J'ai remplacé le fichier dans le message d'origine.
J'en profite pour signaler que l'annulation (Edition/Annuler) est également détecté ;).
 
G

Guest

Guest
Re : Historique des modifications de cellules dans un fichier

Hello,
Salut Ges :),

Oupppsss, une modification de dernière minute et voilà ce qui se passe sans tester :D, merci!
J'ai remplacé le fichier dans le message d'origine.
J'en profite pour signaler que l'annulation (Edition/Annuler) est également détecté ;).

Super!!!!!!!!

A+++
 

JCGL

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour à tous,
Salut les amis :):),

Quand vous arrêterez-vous de nous proposer des fichiers extraordinaires ?

Rien à voir avec le Suivi des Modifications d'XL....

Merci à Skoobi pour son partage de connaissances

A ++
A+ à tous
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour tout le monde,
Salut JC :),

Rien à voir avec le Suivi des Modifications d'XL....
Je pense que tu parles des fichiers partagés.
J'ai jamais vu à quoi ressemblait ce suivi.
Je vais postulé chez Microsoft :D:D:p:p.

Trêve de plaisanterie: j'ai créé une nouvelle version.
Un petit problème sur le couper/coller a été corrigé.
Le copie (ou coupe) colle d'une plage est détaillée cellule par cellule.
Et les formules sont également "tracées", avis aux formulistes ;).
 

hoerwind

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour skoobi, JCGL, hasco et les autres,

Voilà un fichier vraiment utile, et c'est un formuliste qui le dit, bravo et merci.
Il m'arrive parfois (souvent !) d'effacer une formule par inadvertance, c'est une façon aisée de la récupérer.

Je me permets toutefois de faire quelques remarques constructives :

Ne serait-il pas utile d'ajouter une colonne avec la date et l'heure de la modification, éventuellement l'auteur ?

Ne serait-il pas utile d'inverser l'ordre d'affichage, la dernière modification en première ligne, plus rapide pour retrouver une modification récente ?
Ceci permettrait également d'effacer automatiquement la ligne 65536 si celle-ci est remplie et de dégager ainsi la première ligne.

Ne serait-il pas utile d'indiquer dans une cellule, par simple saisie, liste déroulante ou barre de défilement, le nombre de jours (ouvrables ?) à partir desquels les données seraient automatiquement effacées ?
Ou bien saisir dans une cellule la date à partir de laquelle toutes les données antérieures seraient effacées ?
Ceci éviterait d'alourdir inutilement le fichier.
Ma première remarque devrait permettre de le faire.

Je remarque aussi que lorsqu'une formule existante est validée sans l'avoir modifiée, il en est tenu compte dans l'historique.
Ceci alourdit également et inutilement l'historique.

Enfin, la petite cerise sur le gâteau, une liste à cocher reprenant les divers types de modifications dont il faut tenir compte serait utile.
Par exemple si je ne vois pas l'utilité de tenir compte des modifications des motifs (couleurs de fond de cellule) je puis décocher cette option.

Ceci sont mes premières remarques, à l'usage j'en aurais probablement d'autres (lol).
Encore merci et bravo pour le travail réalisé.
 

skoobi

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour hoerwind, le forum,

merci pour les compliments :).
Pour les remarques constructives, je dirais que nous avons les mêmes idées ;), je vais ajouter tout ça au fur et à mesure, ainsi que la cerise :D;).

Je remarque aussi que lorsqu'une formule existante est validée sans l'avoir modifiée, il en est tenu compte dans l'historique.
Ceci alourdit également et inutilement l'historique.
Encore un bug, arrfff, ça ne m'a pas sauté aux yeux, damned, c'est réglé.

Sinon j'ai fais une autre version prenant aussi les commentaires de cellules.

Suite au prochain numéro.
 

Jacques25

XLDnaute Occasionnel
Re : Historique des modifications de cellules dans un fichier

Bonjour à tous,

Félicitation pour ce fichier, un sacré boulot je pense mais quand il y a plusieurs personnes sur un même fichier c'est génial, je ne comprends pas que ce ne soit pas une fonction intégrée à Excel...
Je me posais la question suivante, est ce que le même système ne pourrais pas être repris dans la modification des macros? J'ai aucune idée comment faire mais ça pourrait aussi être utile de créer un journal des modifs.

Encore bravo

Jacques
 

skoobi

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour Jacques25,

Bonjour à tous,

est ce que le même système ne pourrais pas être repris dans la modification des macros? J'ai aucune idée comment faire mais ça pourrait aussi être utile de créer un journal des modifs.

Encore bravo

Jacques

Très bonne remarque, il faudra très certainement utiliser l'objet VBProject, (qui permet d'écrire du code VBA d'après un autre code VBA), à creuser donc...

PS: bientôt la nouvelle version avec une boite de dialogue composée des suggestions (entre autre ;)) de hoerwind.
 

Brigitte

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonsoir,

Je suis un peu à la traîne, car pas boucou de temps en ce moment.

Super, Skoobi, depuis le temps qu'on en rêve.

Dis moi juste (ou alors j'ai loupé une étape ou lu trop vite) : comment l'adapter à un fichier ? il faut copier tout le code qq part ?

Une petite xla en préparation ?

Merci à toi en tout cas de toutes tes ingénieuses idées.

PS : je viens d'impressionner mon homme avec ca...
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour Skoobi, le fil :),
Excellent ton fichier ;)!
C'est dommage que les glisser/déposer ne fonctionnent pas, cela aurait intéressé notre ami.
Par contre, je n'ai pas décortiqué toutes tes Sub (y en a pour un moment :D), mais une question qui m'a toujours laissé perplexe, c'est qu'avec les 2 seules événementielles à dispo, j'aurais aimé déterminer la zone antérieure occupée par la sélection. Vu jusqu'où tu as été, tu doit pouvoir me dire si c'est possible ou non :p... J'ai bien essayé en passant par l'émulation d'un Ctrl+z, la mise en mémoire de la zone de sélection, puis l'émulation d'un Ctrl+y, mais ça ne fonctionne pas :eek:...
En tout cas, toute mes félicitation, et jettes un œil du côté glisser/déposer, à la souris, j'ai pu constater qu'il déclenchait Selection_Change, il y aurait peut-être une dicotomie à faire entre la souris et le clic-droit...
Bonne journée :cool:
 

skoobi

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour Jean Noël ;),


C'est dommage que les glisser/déposer ne fonctionnent pas………… et jettes un œil du côté glisser/déposer, à la souris, j'ai pu constater qu'il déclenchait Selection_Change, il y aurait peut-être une dicotomie à faire entre la souris et le clic-droit...
Il faut passé par Edition>remplissage, un peu contraignant soit, mais j’ai pas trouvé de solution pour l’instant, à suivre…

j'aurais aimé déterminer la zone antérieure occupée par la sélection. Vu jusqu'où tu as été, tu doit pouvoir me dire si c'est possible ou non
Oui c’est possible. Je le fais pour la détection des formats (police, fond, fusion) et les commentaires de cellules. En gros il faut inscrire dans des variables les propriétés voulus de la cellule active, variable qui doivent être déclarées en tête de module. 2 types de variables sont nécessaire : de type Range et ceux récupérants les propriétés de la cellule.
Lors de la sélection d’une autre cellule, un comparatif entre ces variables est faite pour détecter un changement. En effet, la variable de type Range aura changé en cas de modification dans la cellule tandis que les variables « propriétés » eux n’auront pas changé. Je sais pas si je me suis bien fait comprendre… (je peux détailler si tu veux).
Cest comme si on avait créé un événement « ExitCell » car l’analyse est faite lors de la sélection d’une autre cellule.

J'ai bien essayé en passant par l'émulation d'un Ctrl+z, la mise en mémoire de la zone de sélection, puis l'émulation d'un Ctrl+y, mais ça ne fonctionne pas ...
Je ne sais pour quel raison mais l’annulation (Ctrl+z) et la répétition (Ctrl+y) sont parfois désactivées avec les macros événementielles pour certaines opérations et pour d’autres non. Par exemple, la modification dans une cellule (changer le contenu) ne permet pas Ctrl+z et vider le contenu si…Maintenant que je finalise mon appli (sisi, j’ai presque fini :D ;)) je remarque que Ctrl+z ne marche pour aucune opérations ?!?!?
Finalement ça m’arrange bien car ce fût un vrai casse tête pour mettre ça en place.

En tout cas, merci pour ton intérêt et les félicitations :).

Si tous va bien je mets la nouvelle version avec une boite de dialogue (choix des feuilles à analyser, opérations à suivre et nettoyage de la liste) début de semaine prochaine.

A bientôt :)
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Historique des modifications de cellules dans un fichier

Bonjour,

Je crois que Gilbert, tu n'as pas vu ma question... Comment l'utilise t'on dans un fichier ? Quelle est la procédure ?

Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 386
Membres
102 881
dernier inscrit
Talib