Macro Fichier Log Texte

Bonjour tout le monde,

J'aimerai solliciter votre aide concernant une macro que j'aimerai mettre en place, l'idée est simple :

J'ai besoin de tracer dans un fichier texte toute activité effectuée sur un fichier Excel (tous les onglets compris) avec comme indicateurs :

Nom de l'utilisateur

Date et heures d'ouverture du fichier en question

Feuille modifiée

Cellule modifiée

Ancienne valeur

Nouvelle valeur (Suppression, ajout, modification...)

Fermeture

Le fichier texte doit contenir tout l'historique, ça me facilitera la tâche d'avoir un aperçu de tout.

J'ai trouver des macros dans ce sens sauf que celle-ci écrasent à chaque fois le fichier log et moi j'ai besoin de garder l’historique complet dans un fichier texte fixe dans un emplacement bien précis.

Je vous serai vraiment reconnaissant pour votre précieuse aide et vos propositions.

Je vous remercie par avance

bonjour

si tu as déjà une macro qui fait tout cela mais en écrasant le fichier, fournit le, quelqu'un pourra certainement le modifier pour le compléter

fred

Bonjour mklabidi, fred2406

Si je peux me permettre, c'est une très mauvaise idée de vouloir tout "journaliser"... cela va ralentir considérablement les traitements (fonctions Excel, fonctions et procédures VBA) et nuire peut-être encore plus à l'ergonomie, la convivialité de ton "application"...

Un "log" comprenant QUI, QUAND, QUOI (seulement l'onglet, éventuellement la cellule) est largement suffisant et surtout beaucoup plus simple à mettre en place

Bonjour,

J'ai enfin trouver la solution, pour ceux qui sont intéressés :

1- Dans ThisWorkbook :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target.Count = 1 Then

nv = Target.Value

Else

nv = ""

End If

utilisateur = Environ("Username")

datemodif = Now

reference = Target.Address

feuille = Target.Worksheet.Name

Call ecriture

End Sub

2- Dans un nouveau Module :

Public reference As String

Public feuille As String

Public av As String

Public nv As String

Public utilisateur As String

Public datemodif As String

Sub ecriture()

Open "D:\excel-plus.txt" For Append As 1

' Adresse à modifier pour placer le fichier où vous le souhaitez

' Attention à ce que l'accès en écriture soit autorisé, y compris sur un emplacement réseau

Print #1, utilisateur

Print #1, datemodif

Print #1, feuille & " : " & reference

Print #1, "Ancienne valeur :" & av

Print #1, "Nouvelle valeur :" & nv

'si on veut le faire sur une seule ligne, il est possible de créer une variable qui contiendra

'tout le texte concaténé et de faire le print sur cette variable.

'si on souhaite exploiter ce fichier ensuite comme une BDD, on sépare chaque champ par un ";"

'ou alors, il est recommandé d'utiliser le "|" (troisième caractère du 6).

Close 1

End Sub

Bonjour,

Ta solution n'est que partielle, car si les modifications portent sur une plage de cellules, ton suivi n'est pas fonctionnel.

De plus tu n'as pas l'historique des modifications (av ?).

Cdlt.

Bonjour

Du moment que le fichier texte est crée et que l'emplacement est fixe, l'historique des modifications est bien existant.

Cette partie étant régler, par contre je cherche à créer une entête fixe car je souhaites avoir le titre de chaque indicateur avec une séparation ";"

J'ai besoin d'importer le fichier texte dans une base de données ou un fichier Excel et pouvoir l’exploiter par la suite

Rechercher des sujets similaires à "macro fichier log texte"