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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 ?
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
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
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
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