Tracer des accés a un fichier

Résolu
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008 - 14 janv. 2008 à 14:58
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008 - 16 janv. 2008 à 11:28
Bonjour tout le monde,

J'ai actuellement un problème à régler :

Je dois trouver un moyen (probablement en vba) de tracer les accés à un fichier excel et de logger les modifications et qui les font quelque part
Habituellement j'ai toujours une petite idée de comment faire ou je trouve toujours mon bonheur dans ce forum :D
Malheureusement pour le coup je sèche complètement ... :/

Avez vous un conseil à me donner, un bout de code déjà utilisé par qqun ou autre ?

Merci d'avance

Groquick94@hotmail.com

10 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
16 janv. 2008 à 11:17
Utilise l'événement Selection_Change() qui est accédé à chaque changement de position dans la feuille pour retracer la valeur originale.

Option Explicit

Dim Valeur As Variant
Dim Cellule As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Valeur = Target.Value  'valeur lors de la sélection de la cellule

    Set Cellule = Target

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "La cellule  " & Target.AddressLocal(False, False) & vbCrLf & _
                  "a changé de " & Valeur & vbCrLf & _
                  "à           " & Target.Value
End Sub

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008
14 janv. 2008 à 15:19
Avant de me faire envoyer bouler en disant : "active le suivi des modifications hey boulet!" :)
Celui ci ne me satisfait pas du tout du tout.

En effet :

Il ne stock pas le nom de connexion , ni ip ou autre
Il ne conserve l'historique que 30 jours
Une fois activé je n'ai plus accés aux macros ...
Il me fait l'effet d'une boite noire inconfigurable.

Si qqun sait comment le modifier, ok , mais comme j'en doute je viens sur le forum vba :)

Groquick94@hotmail.com
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
14 janv. 2008 à 16:39
Tu peux essayer un truc du style :

Dans le Workbook_Open (ce qui fait que le code sera appelé à chaque ouverture du fichier), un bout de code qui va inscrire dans un fichier texte, à un emplacement pré-défini, les infos que tu trouves nécessaires (date et heure de connexion, ...)
Avec la fonction Environ (msgbox Environ("username") ), tu récupères le nom du user connecté sur le poste, après, je ne sais pas ou, l'adresse IP.

Inconvénient, il faut que l'utilisateur active la macro au lancement, et n'importe qui s'y connaissant un minimum est capable de contourner ou d'aller modifier ta log. Après, ça dépend de tes besoins, mais c'est une piste très simple à mettre en place.

Molenn
0
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008
15 janv. 2008 à 08:55
Merci beaucoup.

Mais y'a t'il moyen de repérer les modifications effectuées (changement de celulles etc)?

Groquick94@hotmail.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
15 janv. 2008 à 22:49
Dans le code chaque feuille, il y a l'événement Worksheet_Change(Target...)
où Target est la cellule qui est modifiée.

Donc, à chaque changement, cet événement est appelé.
Si tu veux "tracker" tous les changements, tu vas ralentir passablement tous le processus du fichier, je pense... et ça rsique de te générer un gros fichier de suivi...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
15 janv. 2008 à 22:56
Selon la grosseur de ton fichier Excel, tu pourrais éventuellement appeler une procédure à la fermeture du fichier dans
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dans cette procédure, tu copies dans un fichier texte (ou autre) toutes les feuilles dont tu veux vérifier les modifications. Et tu nommes le fichier "log" avec la date et l'heure.

Si tu fais ça à toutes les fois que le programme se ferme, tu pourrais suivre les modifications d'une ouverture à l'autre... Ça risque d'être moins pénible à coder et aussi pour l'utilisateur du programme.

Une idée comme ça.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008
16 janv. 2008 à 09:06
Je vais essayer de faire ca, je vous tient au courant

Groquick94@hotmail.com
0
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008
16 janv. 2008 à 09:14
Bon je pense que la methode du WorksheetChange va me convenir très bien :)
Par contre  (ouuuuh le lourd), je n'arrive pas a récupérer l'ancienne valeur, juste la nouvelle valeur. Bon je ne suis pas sur d'en avoir reellement besoin mais ca serait un gros plus.

Groquick94@hotmail.com
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
16 janv. 2008 à 11:22
La variable Cellule n'est finalement pas utilisée... Tu peux donc l'enlever si elle ne te sert pas...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Madax99 Messages postés 7 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 16 janvier 2008
16 janv. 2008 à 11:28
Ca marche nickel, merci beaucoup

Groquick94@hotmail.com
0
Rejoignez-nous