Excel lire macro

Fermé
Sylvie - 17 mars 2009 à 14:21
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 17 mars 2009 à 20:37
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
A voir également:

4 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 mars 2009 à 15:55
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
Bonjour,
Je voudrais me servir de toutes les macros sans chercher à ouvrir chaque classeur pour savoir celle dont j'ai besoin.
Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 mars 2009 à 16:20
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
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > Sylvie
17 mars 2009 à 17:26
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
Sylvie > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
17 mars 2009 à 18:41
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 mars 2009 à 19:25
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
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 mars 2009 à 20:37
De rien et bon courage ...


;o)
0