Être prévenu lors de la modification d'un fichier

  • Initiateur de la discussion Initiateur de la discussion zelgrif
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Z

zelgrif

Guest
Bonjour à tous,

Je viens vers vous pour savoir s'il existe un moyen qu'Excel prévienne un utilisateur X ou Y dès lors qu'un document, qui se trouve sur un disque partagé, a été modifié ?
Ou un éventuel logiciel qui pourrait gérer tel ou tel fichier Excel et préviendrait de sa modification.

Merci d'avance si un moyen existe.

Olivier
 
Re : Être prévenu lors de la modification d'un fichier

Bonjour,
je sais qu'on peut logguer dans un fichier texte les noms d'utilisateurs qui ont ouvert le fichier, avec un historique (je l'ai fait il y a longtemps).
Il faut mettre une macro dans le fichier que l'on veut suivre (dans le module "Private Sub Workbook_Open()" par exemple).
Ca te suffirait?
 
Re : Être prévenu lors de la modification d'un fichier

Le problème est qu'à part créer une macro en mode souris, je ne sais pas utiliser le VB, ni comment créer une macro par le mode éditeur.
S'il existe une macro simple à faire, et qu'on puisse me détailler le contenu et comment l'insérer dans un fichier je veux bien.
Sinon je trouverais une autre solution.
 
Re : Être prévenu lors de la modification d'un fichier

Voilà déjà comment écrire dans un fichier texte (code tiré du Wiki de Michel XLD / la bible du VBA! 😉 )
https://www.excel-downloads.com/thr...oter-dautres-applications-depuis-excel.92359/

Code:
'Ecrire la valeur de la cellule A1 dans une fichier texte , par l'instruction Append


'Remarques : Les données viennent s'inscrire à la suite des lignes existantes .Si le fichier .Txt n'existe pas , il sera créé automatiquement .
Sub excelVersFichierTexte()
Dim Cible As Integer
Cible = freeFile
Open "C:\Mes documents\michel excel\essai.txt" For Append As #Cible
Print #Cible, Range("A1") 'renvoie valeur cellule A1 dans fichier txt
Close #Cible
End Sub


'Ecrire la valeur de la cellule A1 dans une fichier texte , par l'instruction Output


'Remarques : Si le fichier existe , les anciennes données seront écrasées .Si le fichier .Txt n'existe pas , il sera créé automatiquement .
Sub excelVersFichierTexte_V02()
Dim Fichier As String
Fichier = "C:\Documents and Settings\michel\dossier\general\excel\Fichier.Txt"
Open Fichier For Output As #1
Print #1, Range("A1") 'renvoie la valeur cellule A1 dans le fichier txt
Close
End Sub

tu dois placer l'une des deux solutions dans un module.
Fais ALT+F11, pour ouvrir Visual Basic Editor, tu click droit sur "This Workbook", ->Code, Là tu sélèct. dans la liste de droite l'évènement "Open" Puis tu y places ton code (attention de bien enlever les Sub et End sub qui sont dans le code que j'ai joint).
Il faut adapter le chemin de fichier, puis que je retrouve comment récupérer un Login User aussi....sinon ce code ne te sert à rien...Je reviens! 😉
 
Re : Être prévenu lors de la modification d'un fichier

Shock à dit:
Là tu sélèct. dans la liste de droite l'évènement "Open" Puis tu y places ton code (attention de bien enlever les Sub et End sub qui sont dans le code que j'ai joint).

J'ai créé la page "code", mais la liste de droite avec l'évènement "open", je la vois nul part...
 
Re : Être prévenu lors de la modification d'un fichier

Autant pour moi...
D'abord sélèctionne l'objet "Workbook" dans la liste de gauche (là où il est écrit (Général)), et ça te met directement dans l'évènement Open...
Ca te donne ça :
Code:
Private Sub Workbook_Open()

End Sub
 
Dernière édition:
Re : Être prévenu lors de la modification d'un fichier

Bonjour tous,
Ci dessous et ci joint splendide démo de MichelXLD et @+thierry...

Installe taupe.xls ecris quelques trucs et regarde en racine le fichier spy.txt: tes modifications où, quoi, quand sont caftées..
Code:
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
' AUTEUR: MichelXLD adapté de :
'@+Thierry
'http://www.excel-downloads.com/html/French/forum/messages/1_74783_74783.htm
'
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lpBuff As String * 25
Dim ret As Long
Dim UserName As String, Spy As String, ThePath
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
ThePath = "C:\Spy.txt" ' à adapter au réseau
 
Spy = _
Format(Now, "DD/MM/YYYY HH MM SS") & vbTab & _
"User Name : " & UserName & vbTab & _
Sh.Name & vbTab & Target.Address & vbTab & Target.Cells(1, 1)
Open ThePath For Append As #1
Print #1, Spy
Close
End Sub

A+
Michel_M
 
Dernière édition:
Re : Être prévenu lors de la modification d'un fichier

La macro me crée un fichier reprenant les données dans la cellule A1.
Mais après je ne vois pas comment ça peut faire apparaitre une liste d'utilisateurs qui ont utilisés le fichier...
C'est par une autre macro ? Une formule ?
 
Re : Être prévenu lors de la modification d'un fichier

Merci Michel,

Mais j'ai beau modifier 36 choses dans le fichier, j'ai aucun fichier texte à la racine du fichier qui se crée.
J'ai collé ton texte de macro dans un nouveau module, et ça ne fait rien du tout...

Mais bon, vu le novice que je suis, je ne dois pas faire les choses comme il faut...
Ne vous acharnez pas, il n'y a pas de solution simple on dirait, je m'en passerais.
 
Re : Être prévenu lors de la modification d'un fichier

re,

Regarde dans taupe.xls (la pièce jointe de mon post), la macro est présente dans "thisworkbook" de l'éditeur VBE et non dans un module "classique"

Pour faire apparaitre l'explorateur de projets Ctrl+R où tu verras "thisworkbook"

N'hésites au cas où
Michel_M

PS: le fichier spy.txt est en racine du disque dur c:
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Z
Réponses
2
Affichages
914
Z
M
Réponses
1
Affichages
8 K
melvin
M
Retour