comment écrire à la suite dans un .txt

ThomasR

XLDnaute Occasionnel
Bonjour le forum,

je cherche à alimenter un fichier .txt

exemple :

quand je ferme mon fichier excel je veux inscrire dans un fichier 'histo.txt' le user est la date + l'heure.

alors pour le user je fais
Code:
Function GetUserName()

     Const lpnLength As Integer = 255
     Dim status As Integer
     Dim lpName, lpUserName As String
     lpUserName = Space$(lpnLength + 1)
     status = WNetGetUser(lpName, lpUserName, lpnLength)
     If status = NoError Then
          lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
     Else
          MsgBox 'Impossible d'obtenir le login.'
          End
     End If
     GetUserName = lpUserName
End Function

donc là pas de problème B) bon c'est pas de moi mais de ce site :
Ce lien n'existe plus

tres bon site je le conseil pour les debutant.

je reviens à mon problème

donc j'ai le USER puis je souhaite l'envoyer dans un fichier texte mais à la suite des precedent enregistrement.

Code:
GetUserName & Now =====> vers 'histo.txt'

D'avance merci
Thomas®
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

code récupéré sur ce forum je crois bien pour une partie et pour le nom de l'username de Stéphane il n'y a pas longtemps sur un fil qui évite la fonction que tu as mis

Code:
Private Const ThePath As String = 'C:\\Suivi\\Histo.txt'

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim UserName As String, Spy As String

UserName = Environ('username')


Spy = ThisWorkbook.Name & ' sur ' & ThisWorkbook.Path & ' Fermé le : ' & vbTab & Format(Now, 'DD/MM/YYYY HH:MM:SS') & _
vbTab & 'Log Connection : ' & vbTab & UserName & vbTab & _
'Application User Name : ' & vbTab & Application.UserName

Open ThePath For Append As #1
Print #1, Spy
Close

End Sub

Bon courage

Edition : Là je t'en ai mis plus car tu as le log de connection Username et sous quel nom Excel est enregistré (Application.Username) Tu peux virer celui-là si tu n'en as pas besoin

Message édité par: Pascal76, à: 09/06/2005 16:04
 

ThomasR

XLDnaute Occasionnel
bonjour Pascal76, le forum,

merci pour ta reponse, je n'ai pas eu le temps signalé que j'avais trouvé une solution

Code:
Private Sub Workbook_Open()
      Dim LogFile As String
       LogFile = ThisWorkbook.Path & '\\old\\activite.log'
      ChDir ThisWorkbook.Path & '\\old\\'
      Donnees = Now()
      Open LogFile For Append Shared As #1
      Print #1, 'Ouverture d'Excel a ' & Donnees & 'par ' & GetUserName
      Close #1
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Dim LogFile As String
      LogFile = ThisWorkbook.Path & '\\old\\activite.log'
      ChDir ThisWorkbook.Path & '\\old\\'
      Donnees = Now()
      Open LogFile For Append Shared As #1
      Print #1, 'Fermeture d'Excel a ' & Donnees & 'par ' & GetUserName
      Print #1, '----------------------------------'
      Close #1
      
Application.DisplayAlerts = False
fermeture
End Sub

quel est le risque de ma procedure (mise à par la taille), moi je pensais que le user excel n'etait pas toujours bon ?

Merci
Thomas®
 

ThomasR

XLDnaute Occasionnel
re

oui apres coup je me rend compte que ce n'est pas tres claire

deplus je n'avais pas vu que dans ton code il y a le user excel ainsi que celui de windows

(enfait ma question qui n'a plus de raison d'être etait, 'je ne suis pas sur que le user excel soit toujours le même que celui d'ouverture de session windows' :silly: ).

je suis sous excel 97 et de ce fait je vais voir si ta facon de faire

UserName = Environ('username')

&

Application.UserName

passe avec mon excel, si oui alors je ne comprend pas pourquoi l'autre facon :pinch: .

Merci et désolé pour ce langage des cavernes (lol)
Thomas®
 

Discussions similaires

Statistiques des forums

Discussions
312 571
Messages
2 089 798
Membres
104 275
dernier inscrit
Manu974