SAUVEZ MOI!!!!!!!!!!!!!!!!!

tibogl Messages postés 42 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 25 avril 2006 - 4 août 2005 à 16:14
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 - 4 août 2005 à 17:20
Bonjour, j'ai crée une macro utilisée par plusieurs personne sur plusieurs ordinateur différents, j'aimerais l'améliorer en permettant de marquer sur un onglet du fichier excel, lorsqu'une personne sauvegarde, son nom windows, l'heure et la date de la sauvegarde.
Est-ce possible?
Est ce que quelqu'un parmi vous saurait m'indiquer la marche à suivre ou bien a déja utilisé un code similaire...
Merci d'avance

11 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 août 2005 à 16:22
'lut

vive les api :)

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

puis dans le code:


'Create a buffer


strUserName = String(100, Chr$(0))


'Get the username


GetUserName strUserName, 100


'strip the rest of the buffer


strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)

Sheets(1).Name = strUserName & "_" & format(Date,"ddmmyyyy")

BasicInstinct
0
cs_lucio57 Messages postés 146 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 25 juillet 2007 2
4 août 2005 à 16:23
Avant de te répondre, je vais t'indiquer quelques points de savoir vivre sur un forum !
Ne mets pas les titres des postes en majuscules, c'est agressif et sois explicite dans tes titres parce que on sait pas de quoi tu parles et que si on est un peu speed on prends pas le temps de te lire.

pour récupérer le nom windows de la personne.
NomUser = environ(username)

pour la date / heure
MaDate = format(date, "JJ/MM/YYYY hh:mm:ss")

tu alimentes les deux variables dans l'événement workbooks_beforesave

Par contre si plusieurs personnes se servent en même temps du fichier, ça risque d'être chaud pour que les autres sachent quand l'un enregsitrent.
0
cs_Sp00ky Messages postés 112 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 20 novembre 2006 1
4 août 2005 à 16:25
Je dirais meme plus, si tu veux la date avec l'heure, autant utiliser directement la fonction NOW au lieu de format(Date,"ddmmyyyy")

Ce qui donne pour la derniere ligne :
Dim Date_Now As Date
Date_Now = NOW
Sheets(1).Name = strUserName & "_" & Date_Now



<HR>

$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !</FON< body>
0
tibogl Messages postés 42 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 25 avril 2006
4 août 2005 à 16:28
Comment on fait pour gérer l'évenement workbooks before save, je comprend pas, c'est dans une macro qu'il faut faire ca?
j'ai bien compris l'opération pour obtenir les nom et heure et dates mais je ne comprend pas komment l'utiliser juste kan la personne sauvegarde le fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lucio57 Messages postés 146 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 25 juillet 2007 2
4 août 2005 à 16:29
BasicInstinct : Avant j'utilisais ta méthode pour ressortir l'utilisateur mais j'ai été incazpable de l'adapter en .NET donc j'ai trouvé environ(username), je n'ai jamais eu de pb avec celle là mais je me demande si ça ressort exactement la même chose. Si tu pouvais me le confirmer ça me rassurerait

Spooky : Bien vu j'avais pas pensé au NOW
0
tibogl Messages postés 42 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 25 avril 2006
4 août 2005 à 16:32
la méthode environ(username) ne fonctionne pas...
jhe ne comprend pas
0
cs_lucio57 Messages postés 146 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 25 juillet 2007 2
4 août 2005 à 16:33
Dans le projet VBA de ton fichier EXCEL (alt + F11) tu as la liste des onglets de ton fichier plus une feuille ThisWorkbook. Une fois que tu as sélectionné celle ci tu as des événements en haut à droite. Ce sont tous les évenements qui sont liés à ton classeur dans cette liste il y a BeforeSave. Si tu le sélectionnes, il te crée une procèdure

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


End Sub

Celle ci s'executera dès que tu lanceras la commande enregistrer. Par contre je ne sais pas si elle se lance aussi lors de l'enregsitrement automatique d'EXCEL.
0
cs_lucio57 Messages postés 146 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 25 juillet 2007 2
4 août 2005 à 16:35
environ(username) ne fonctionne pas ? Je comprends pas là peut etre qu'une référence n'est pas bonne. Utilise la méthode de BasicInstinct, elle marche très bien.
0
tibogl Messages postés 42 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 25 avril 2006
4 août 2005 à 16:40
tout fonctionne, j'arrive a enregistrer la date lorsque je sauve , mais je n'arrive pas a enregistrer le nom...
je n'arrive toujours pas a récuperer le nom, que ce soit environ(username) ou bien la methode de basic instinct, cela ne plante pas mais cela ne marche pas...
0
tibogl Messages postés 42 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 25 avril 2006
4 août 2005 à 16:46
tout fonctionne, merci beaucoup les gars!!
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 août 2005 à 17:20
methode username en .NET


Imports System


Imports System.Security


Public Module modmain


Sub Main()


Console.WriteLine("Current username: " & Principal.WindowsIdentity.GetCurrent.Name)


End Sub


end Module

BasicInstinct
0
Rejoignez-nous