Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

changer macros de X fichier par une macro.

sanphe

XLDnaute Nouveau
Bonjour,

J'ai plusieurs centaines de fichiers qui contiennes les mêmes macro. Je dois mettre à jour ces macros. J'ai un fichier contenant la macro modifiée et que voudrais copier sur l'ensemble des fichiers.

Je souhaite donc avoir une macro qui copierait la macro d'origine sur l'ensemble des fichiers d'un répertoire.

Merci de votre aide.

Philippe
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.


Bonjour

votre classeur se nomme "modifclasseur.xls" à changer dans le code si celui ci doit s'appeler différemment

la liste des fichiers à modifier se trouve en colonne A du classeur sus nommé

voir aussi le nom du module et de la macro à modifier

ansi que la modification

Code:
Sub testmodifmacro()
    Dim Wbk As Workbook, NomProc$, NomModule$, LiModif&, TxtModif$
    Application.ScreenUpdating = False
    For i = Sheets(1).Range("A65536").End(xlUp).Row To 1 Step -1
        fname = Sheets(1).Cells(i, 1).Value & ".xls"
        Workbooks.Open Filename:=fname
        Set Wbk = Workbooks(fname)
        NomProc = "MacroAModifier"
        NomModule = "Module1"
        LiModif = 5
        TxtModif = "    MsgBox a,,testeur"
        'modifie la ligne 5 de la macro "MacroAModifier"
        ModifMacro Wbk, NomProc, NomModule, LiModif, TxtModif
        Workbooks(fname).Save
        Workbooks(fname).Close
        Workbooks("modifclasseur.xls").Activate
    Next
    Application.ScreenUpdating = True
End Sub


Sub ModifMacro(Classeur As Workbook, NomMacro$, Module$, Ligne&, Modif$)
    Dim LiDeb&
    With Classeur.VBProject.VBComponents(Module).CodeModule
        LiDeb = .ProcBodyLine(NomMacro, 0)
        .DeleteLines LiDeb + Ligne, 1
        .InsertLines LiDeb + Ligne, Modif
    End With

End Sub

Salutations

RGI
 

sanphe

XLDnaute Nouveau
Re : changer macros de X fichier par une macro.

Bonjour Gilbert,

J'ai mis :
fname = "\\srvma071\production\P10\Applications\cartes\test1\original.xls"
Je déroule le programme en pas a pas et j'ai une erreur d'execution 9 (lindice n'appartient pas à la selection sur la ligne "Set Wbk = Workbooks(fname)"

Philippe
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.


je pense qu'il faut que le fichier de modif soit dans le même repertoire que ceux à modifier

chez moi en local ça fonctionne mais je n'ai pas essayé en reseau

RGI
 

sanphe

XLDnaute Nouveau
Re : changer macros de X fichier par une macro.

Gilbert,

Jai rajouté
Chemin = "\\srvma071\production\P10\Applications\cartes\test1\"
fname = Dir(Chemin & "original.xls")

Le premier programme semble s'exectuer correctement par contre quand j'arrive sur le 2eme sous programme, j'ai une erreur 1004 sur la ligne "With Classeur.VBProject.VBComponents(Module).CodeModule"

message d'erreur " l'acces par programme au projet visual basique n'est pas fiable'

Philippe
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.


RE

verifiér si les references sont bien identiques



une fois de plus j'ai fait le test sur plusieurs fichiers et ça fonctionne

à vous relire

RGI
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.

une autre possibilité d'erreur

il faut que la sécurité macro soit sur moyen

menu excel Outils / macro / securité

ajuster sur moyen

Salutations

RGI
 
Dernière édition:

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : changer macros de X fichier par une macro.

Bonjour

Merci d'éviter de poster des fichiers ou images sur cjoint car leur durée de vie est limitée. Donc tes références dans quelques semaines nous ne pourrons pas les voir.
De plus vous avez la possibilité maintenant de poster des images ce sera plus facile pour tout le monde

Bonne journée
 

sanphe

XLDnaute Nouveau
Re : changer macros de X fichier par une macro.

Gilbert,

Ma sécurité etais sur basse, je l'ai mis en moyenne mais ça n'a rien changé.

Je ne trouve pas l'écran des references. ou est il situé ?

Philippe
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.

Gilbert,

Ma sécurité etais sur basse, je l'ai mis en moyenne mais ça n'a rien changé.

Je ne trouve pas l'écran des references. ou est il situé ?

Philippe

voilà c'est ici

Dans le menu Outils, pointez sur Macro, puis cliquez sur Sécurité.
Sous l'onglet Sources fiables , activez la case à cocher Faire confiance au projet Visual Basic.
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.



Désolè,oups

Voilà c'est modifié

RGI
 
Dernière édition:

sanphe

XLDnaute Nouveau
Re : changer macros de X fichier par une macro.

Gilbert,

J'ai modifié la sécurité (faire confiance...)

et J'ai reussi à dérouler les macros et rajouter la ligne de test, Il me reste maintenant a prendre les fichiers un par un du répertoire. Je n'utiliserais pas le champs de la colonne A. Je pense avoir la macro nécessaire pour cela.

Merci beaucoup de votre aide, j'espere y arriver tout seul maintenant.

Bonne journée.

Philippe
 

gilbert_RGI

XLDnaute Barbatruc
Re : changer macros de X fichier par une macro.


Voilà si vous ne retrouvez pas

Bonne journée à vous aussi

RGI
 

Pièces jointes

  • liste_fichiers.xls
    33 KB · Affichages: 99
  • liste_fichiers.xls
    33 KB · Affichages: 99
  • liste_fichiers.xls
    33 KB · Affichages: 104

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…