killy99
Messages postés25Date d'inscriptionlundi 5 mars 2007StatutMembreDernière intervention 5 novembre 2008
-
3 juil. 2008 à 10:50
killy99
Messages postés25Date d'inscriptionlundi 5 mars 2007StatutMembreDernière intervention 5 novembre 2008
-
3 juil. 2008 à 12:21
Bonjour,
J'élabore une application excel qui permet d'avoir un nouveau menu comrpenant des macros personnelles à chaque ouverture d'excel.
Pour ce faire j'ai enregistrer dans le dossier de démarage d'excel(D:\Documents and Settings"user"\Application Data\Microsoft\Excel\XLSTART) mon .xls comprenant les macros("MacroPERSO"version(1_1 ou 1_3...".XLS").
Pour le momant j'ai que deux utilisateurs mais dans peu de temps j'en aurais plus et le nombre de macros disponnible vat encore croitre. Pour éviter d'instaler à la main les nouvelles macros sur différents postes de travail, je veux mettre en oeuvre une macro permettant une mise à jour "semi automatique".
Pour ce faire il faut que je compare le nom du fichier déjà présent dans le répertoire de lancement et le nouveau qui serat fournit par mail ou sur le réseaux.
Il me faut donc savoir comment récupérer le nom du fichier présent sur la machine de l'utilisateur. Pour la comparaison des deux fichiers et pour la mise à jour du fichier je pense m'en sortir tout seul .
Voici les données connu:
le path du répertoire : D:\Documents and Settings"user"\Application Data\Microsoft\Excel\XLSTART
le nom du nouveau classeur comprenant les nouvelle macro : MacroPERSO2_0.XLS
Merci d'avance pour votre aide.
A voir également:
Comparer le nom de deux fichier .xls pour mise à jour.
''récupère le nom du classeur de macro perso de mise à jour.
nomnew = ThisWorkbook.Name
''teste si d'autre classeurs que des "MacroPERSO#_#.XLS" sont ouvert
nbclasseur = Workbooks.Count
For numclasseur = 1 To nbclasseur
nomclasseur = Workbooks(numclasseur).Name
If nomclasseur Like "MacroPERSO#_#.XLS" And nomclasseur <> nomnew Then
nomencour = nomclasseur
End If
Next
''teste si la nouvelle version est supérieure.
If nomencour < nomnew Then
formselectid.Show 'permet à l'user d'entrer son id
userid = formselectid.txtid.Text 'récupère l'id windows de l'user
path = "D:\Documents and Settings" & userid & "\Application Data\Microsoft\Excel\XLSTART"
''traitement de mise à jour
MsgBox "La mise à jour est effective."
Else
MsgBox "Votre classeur de macros personnelle est déjà à jour."
End If
killy99
Messages postés25Date d'inscriptionlundi 5 mars 2007StatutMembreDernière intervention 5 novembre 2008 3 juil. 2008 à 10:58
Je suis trops bête...
Mon fichier déjà existant ce trouve dans le répertorie de lancement d'excel, donc quand j'ouvre un fichier .xls le premier s'ouvre également. Du coup il me suffit de faire un count sur les workbooks, récup les noms faire les tests adéqua dessus...
Enfin je pense que ça peut fonctionner comme çà, non?