fichier txt incrémenté à l'ouverture de xls

2 réponses
Avatar
Eric C
Bonjour,

Je dispose d'un fichier excel accessible à plusieurs collègues.
Je crains qu'ils n'aillent jamais le consulter...
D'où son inutilité et alors plus besoin de le tenir à jour... :-)

Serait-il possible d'écrire une macro à l'ouverture du fichier xls qui
écrirait la date et l'heure d'ouverture du xls dans un fichier txt sur
le meme repertoire ?

Comment faire ?

Merci !
Eric

2 réponses

Avatar
isabelle
bonjour Eric,

en supposant que le fichier MonFichier.txt soit déjà créer même s'il n'y a aucune info dedans,
il faut d'ajouter la référence : Microsoft Scripting Runtime


Private Sub auto_Open()
'EcrireÀLaFin
Dim oFSO As Scripting.FileSystemObject
Dim oFl As Scripting.File
Dim oTxt As Scripting.TextStream
Dim fileName As String, texte1 As String
fileName = "C:tempMonFichier.txt" ' <-------------adapter
Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile(fileName)
'lire et fermer
Set oTxt = oFl.OpenAsTextStream(ForReading)
On Error Resume Next
texte1 = oTxt.ReadAll
If Err.Number <> 0 Then Err.Clear: texte1 = ""
oTxt.Close
'écrire et fermer
Set oTxt = oFl.OpenAsTextStream(ForWriting)
oTxt.WriteLine texte1 & Now & " " & Application.UserName
oTxt.Close
End Sub


--
isabelle



Le 2012-02-07 15:31, Eric C a écrit :
Bonjour,

Je dispose d'un fichier excel accessible à plusieurs collègues.
Je crains qu'ils n'aillent jamais le consulter...
D'où son inutilité et alors plus besoin de le tenir à jour... :-)

Serait-il possible d'écrire une macro à l'ouverture du fichier xls qui écrirait la date et l'heure



d'ouverture du xls dans un fichier txt sur le meme repertoire ?

Comment faire ?

Merci !
Eric
Avatar
Eric C
Merci Isa, c'est exactement ce que je voulais.
A+
E.

Le 8/02/2012 01:30, isabelle a écrit :
Private Sub auto_Open()
'EcrireÀLaFin
Dim oFSO As Scripting.FileSystemObject
Dim oFl As Scripting.File
Dim oTxt As Scripting.TextStream
Dim fileName As String, texte1 As String
fileName = "C:tempMonFichier.txt" ' <-------------adapter
Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile(fileName)
'lire et fermer
Set oTxt = oFl.OpenAsTextStream(ForReading)
On Error Resume Next
texte1 = oTxt.ReadAll
If Err.Number <> 0 Then Err.Clear: texte1 = ""
oTxt.Close
'écrire et fermer
Set oTxt = oFl.OpenAsTextStream(ForWriting)
oTxt.WriteLine texte1 & Now & " " & Application.UserName
oTxt.Close
End Sub