Comparer le nom de deux fichier .xls pour mise à jour.

Résolu
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008 - 3 juil. 2008 à 10:50
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Derniè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.

2 réponses

killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 novembre 2008
3 juil. 2008 à 12:21
Public Sub majmacro()

''____________
''Déclaration.
''------------

    Dim userid As String
    Dim nomencour As String
    Dim nomnew As String
    Dim nomclasseur As String
    Dim path As String

    Dim nbclasseur As Integer
    Dim numclasseur As Integer

''_______________
''initialisation.
''---------------

''______
''Début.
''------
    
    ''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
    
End Sub
3
killy99 Messages postés 25 Date d'inscription lundi 5 mars 2007 Statut Membre Derniè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?
0
Rejoignez-nous