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,

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

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.

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

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.

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

RE

verifiér si les references sont bien identiques

refere10.jpg


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

à vous relire

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
 

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.

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


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.

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

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

Statistiques des forums

Discussions
312 287
Messages
2 086 815
Membres
103 394
dernier inscrit
elhamdi