VBA éxecuter modules à partir d'une maccro

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous,
avec votre aide, je suis parvenu à ouvrir et modifier 62 dossiers contenant des dizaines classeurs comme je le souhaitais (remplacements de modules, ThisWorkbook, page etc...). Tous ces classeurs se trouvent maintenant dans un dosssier "Contrôles Clients Bis". Ce que je n'arrive pas à faire, c'est à partir de ce code:
Code:
Sub MaMacro()
Dim CheminDossier$, dossier, i As Byte, chemin$, o As Boolean, NomModule As String, Module3 As Variant
CheminDossier = "C:\Documents and Settings\JFL CONTROLE\Bureau\" 'à adapter
dossier = Array("Contrôles Clients Bis") 'noms des dossiers
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'pour la supression des feuilles
For i = 0 To UBound(dossier)
  chemin = CheminDossier & dossier(i) & "\"
  nomfich = Dir(chemin & "*.xls*") '1er fichier du dossier
  While nomfich <> ""
    o = False
    On Error Resume Next
    If IsError(Workbooks(nomfich).Name) Then 'si le fichier n'est pas déjà ouvert, on l'ouvre
       Application.EnableEvents = False
       Workbooks.Open chemin & nomfich
       o = True
    End If
    On Error GoTo 0
       
    With ActiveWorkbook.VBProject
     .Module3 Run 'C'est ici que je souhaite l'execution du module3
    End With
        
      Application.EnableEvents = True
      If o Then ActiveWorkbook.Close SaveChanges:=True 'si le fichier a été ouvert on le ferme
    
    nomfich = Dir 'fichier suivant du dossier
  Wend
Next
End Sub
éxecuter le module3 du classeur ouvert:
Code:
Sub Enregister()
    ' Enregistrer Sous
 Application.EnableEvents = False
    Dim Lechemin As String
    Dim LeFichier As String
    Dim NomRep As String
    
   '\***************************************************************************************************************************
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Lechemin = ActiveWorkbook.Path
            
    Nom = Cells(4, 3)
        
    NomClient = Cells(39, 26).Value
    
    NumParc = Cells(12, 8).Value
    
    Lieu = Cells(46, 25).Value
    
    NomRep = NomClient
    
    Marque = Cells(9, 8).Value
    
    Numserie = Cells(11, 8).Value
              
    Jour = Format(Cells(49, 9), "dd-MM-YYYY")
    
    LeFichier = Nom & " _ " & NumParc & " _ " & NomClient & " _ " & Marque & " _ " & Numserie & " _ " & Jour
   '\***************************************************************************************************************************
    Lechemin = "C:\Documents and Settings\JFL CONTROLE\Bureau\Trames\CONTROLES CLIENTS\"
    
    If Dir(Lechemin & NomRep & " " & Lieu, 16) = "" Then MkDir Lechemin & NomRep & " " & Lieu
       
    ActiveWorkbook.SaveAs Lechemin & NomRep & " " & Lieu & "\" & LeFichier

    ActiveWorkbook.ActiveSheet.Select
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
   '\***************************************************************************************************************************
   Application.ScreenUpdating = True
   Application.EnableEvents = True
  ThisWorkbook.Close SaveChanges:=True
End Sub

J'ai l'impression que mon post est un peu chargé...:( mais bon..
Merci de votre aide.
@+
 

Arpette

XLDnaute Impliqué
Re : VBA éxecuter modules à partir d'une maccro

Re, pas de problème, voici les deux fichiers. La macro à exécuter se trouve dans le fichier "Outils de modification_ module5" et "Corrigé_module4" de l'autre classeur.
merci de ton aide
@+
 

Pièces jointes

  • Outils de modification.xls
    253 KB · Affichages: 54
  • APPARAUX _ SA D' EXPLOITATION DE _ 6 CHAINES _ 1100728 _ 08-06-2011.xls
    181.5 KB · Affichages: 99

job75

XLDnaute Barbatruc
Re : VBA éxecuter modules à partir d'une maccro

Re,

Merci Arpette, grâce à vos fichiers j'ai résolu le problème.

C'est particulièrement vicelard :cool:

1) Il faut en effet utiliser des guillemets anglais (apostrophes) car il y a plein d'espaces (12) dans le nom du fichier.

2) Dans le nom du fichier il y a une apostrophe (après le D).

Alors pour ne pas la confondre avec les guillemets du 1) Excel double l'apostrophe dans le nom de la macro !!!

Donc utilisez ce code :

Code:
Application.Run "'" & Replace(nomfich, "'", "''") & "'!Corriger"
Merci encore, c'est bon à savoir.

PS : j'oubliais, dans le 1er fichier plusieurs macros s'appellent MaMacro.

Ce n'est pas recommandé, utilisez toujours des noms différents.

A+
 

Arpette

XLDnaute Impliqué
Re : VBA éxecuter modules à partir d'une maccro

Ah, super Job:), c'est moi qui te remercie, je n'aurais jamais trouvé. Oui, tu as raison, il y a des modules qui ont le même nom, mais c'est un outils de correction et je lance module par module, mais pour faire propre je vais corriger.
Je suis super heureux, car j'étais parti qu'à chaque ouverture de classeur, aller lancer le module "Corriger":p
Merci encore et bon Week-End
@+
 

Arpette

XLDnaute Impliqué
Re : VBA éxecuter modules à partir d'une maccro

Ah, super Job:), c'est moi qui te remercie, je n'aurais jamais trouvé. Oui, tu as raison, il y a des modules qui ont le même nom, mais c'est un outils de correction et je lance module par module, mais pour faire propre je vais corriger.
Je suis super heureux, car j'étais parti qu'à chaque ouverture de classeur, aller lancer le module "Corriger":p
Merci encore et bon Week-End
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 198
dernier inscrit
CACCIATORE