Excel lire macro

Sylvie -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Lorsque j'ouvre un classeur, je peux voir ma macro. Mais, je voudrais voir toutes mes macros des autres classeurs Excel et les exécuter si je le veux sans avoir à ouvrir tous les classeurs.
Merci
Configuration: Windows XP
Firefox 3.0.7

4 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    On peut lancer une macro d'un autre classeur en utilisant la fonction Run

    Application.Run("C:\monClasseur.xls!macro1")


    Si la macro demande des paramètres d'entrées et renvoie une valeur on peut faire
    retour = Application.Run("C:\monClasseur.xls!macro1", 10)


    ;o)
    0
    1. Sylvie
       
      Bonjour,
      Je voudrais me servir de toutes les macros sans chercher à ouvrir chaque classeur pour savoir celle dont j'ai besoin.
      Merci
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Voilà comment toutes les macros d'un classeur.
    Sub listeMacros()
    'Nécessite d'activer la référence
        '"Visual basic For Application Extensibility 5.3"
    
    Dim i As Integer, Ajout As Integer, x As Integer
    Dim Msg As String
    Dim VBCmp As VBComponent
    Dim Wb As Workbook
    
    'Indiquez le nom du classeur (ouvert)
    Set Wb = Workbooks.Open("C:\monClasseur.xls")
    
    Ajout = 1
    For Each VBCmp In Wb.VBProject.VBComponents
        Msg = VBCmp.Name
        
        With ThisWorkbook.Worksheets(1).Cells(Ajout, 1)
            .Interior.ColorIndex = 6
            .Value = Msg
        End With
        
        x = Wb.VBProject.VBComponents(Msg).CodeModule.CountOfLines
        For i = 1 To x
            ThisWorkbook.Worksheets(1).Cells(Ajout + i, 1) = _
                Wb.VBProject.VBComponents(Msg).CodeModule.Lines(i, 1)
        Next
        
        Ajout = Ajout + x + 2
    Next VBCmp
    End Sub
    


    Il suffit de l'adapter un peu pour parcourir l'ensemble des classeurs ...

    ;o)
    0
    1. Sylvie
       
      Bonjour,
      Je suis débutante et j'ai du mal à appliquer cette formule.
      Exemple:
      j'ouvre un nouveau classeur Excel sur le bureau et quand je veux y appliquer une macro.
      Affichage - macro - le tableau est vide . je n'ai aucune macro.
      Je voudrai avoir dans ce tableau toutes la liste de macro qui se trouve je ne sais où dans l'ordi.
      Merci.
      0
      1. Polux31 Messages postés 7219 Statut Membre 1 204 > Sylvie
         
        Alors là, ce n'est pas possible.

        Il faut pour cela que tous les classeurs possédant des macros soient ouverts et dans la fenêtre "Macro" sélectionner dans la liste déroulante en bas de la fenêtre : tous les classeurs ouverts.

        Sinon regarde ici ... mais je ne pense pas que ça soit cela que tu veux.

        ;o)
        0
      2. Sylvie > Polux31 Messages postés 7219 Statut Membre
         
        Bonjour,
        Je me demande si j'ouvre un classeur que je le nomme Macro.
        Puis-je lui mettre toutes les macros et lorsque j'ai besoin d'une macro;je n'ai plus qu'à ouvrir ce classeur.
        Merci
        0
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Si tu as regardé le lien, c'est un peu ce qu'il propose ^^

    Il faut le nommé .XLA et ne contiendra que des macros et pas de feuilles. Je te conseille de bien suivre le tuto.

    Il suffit de faire quand tu lances Excel de faire : Outils/Macros Complémentaires, et cochez la case "Mes fonctions personnelles". Ensuite tu les auras à chaque lancement d'Excel sans avoir à refaire la manip.

    ;o)
    0
    1. Sylvie
       
      Bonjour, Polux31
      Je pense que c'est cela que je cherche.
      J'essaierai demain, je vous tiendrai au courant. Et merci d'aider, les personnes comme moi qui ne connaisse pas grands choses au monde d'Excel.
      A+
      0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    De rien et bon courage ...

    ;o)
    0