Comment lancer une macro VB sur n'importe quel fichier excel ?

tzehani

XLDnaute Nouveau
Bonjour à toutes et à tous

J'ai une macro qui s'appelle ComptRendu que j'ai réalisée dans un fichier excel nommé Juillet2007.xls, je voudrai utiliser cette macro sur n'importe quel autre fichier, donc pour cela j'ai crée un fichier excel Perso.xls que j'ai mis dans XLStart avec la macro dedans. Donc quand je lance à présent excel,le fichier Perso.xls s'ouvre et me permet d'accéder à la macro sans problème

Maintenant le problème exactement est que je n'arrive pas à activer la feuille excel dans laquelle je veux executer ma macro qui est située dans Perso.xls

Exemple si j'ai ouvert un fichier Aout2007.xls et bien je n'arrive pas à activer pour executer correctement ma macro, c'est comme si la macro s'executait tout le temps sur Perso.xls (chose que je ne souhaite pas ...)

Voici mon code
Code:
Sub CompteRendu()

   .....
   .....
    
    Windows("BD.xls").Activate
    Application.Goto Reference:="BaseProjets"
    Selection.Copy

    Feuil1.Activate ==> " ici je voudrai activer ma feuille courante et non pas Perso.xls or c'est ce dernier qui est activé "

    ActiveWindow.SmallScroll ToRight:=8
    Range("AP1").Select
    ActiveSheet.Paste
    Columns("AP:AP").EntireColumn.AutoFit
    Application.CutCopyMode = False
    ActiveWorkbook.Save

   .....
   .....

End Sub

Merci beaucoup de votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Comment lancer une macro VB sur n'importe quel fichier excel ?

Bonjour Tzehani,

pas sur d'avoir tout compris, essaye peut être le code ci dessous en adaptant nom classeur et feuille :

Code:
Workbooks("Classeur1.xls").Sheets("Feuil1").Activate

bonne journée
@+
 

yakutake83

XLDnaute Occasionnel
Re : Comment lancer une macro VB sur n'importe quel fichier excel ?

Bonjour Tzehani!

A ta place, j'utiliserais un bouton "Parcourir" qui te permettrait de récupérer le fichier à étudier ainsi que son chemin, puis de mettre le chemin dans l'adresse de ton fichier sur lequel utiliser la macro!

par exemple, sur ton fichier "perso", tu insères la macro suivante:

Code:
Function joindre()
   Dim chemin As String         'nom de variable récupérant le chemin du fichier
   chemin = Application.GetOpenFilename
   Range("une cellule que où tu veux renvoyer ton chemin").Value = chemin 
End Function


ensuite, dans la macro que tu as déjà fait, tu remplaces
Code:
Feuil1.Activate
par
Code:
Workbooks(chemin).Sheets("Feuil1").Activate

je pense que ça devrait marcher dans ce cas!
 

tzehani

XLDnaute Nouveau
Re : Comment lancer une macro VB sur n'importe quel fichier excel ?

Bonjour Tzehani,

pas sur d'avoir tout compris, essaye peut être le code ci dessous en adaptant nom classeur et feuille :

Code:
Workbooks("Classeur1.xls").Sheets("Feuil1").Activate

bonne journée
@+

Le problème c'est que je ne veux pas mettre pas le nom du fichier excel puisque je veux que cette macro soit utilisable pour n'importe quel fichier excel ( c'est à dire n'importe quel nom)

mais le problème quand j'ouvre excel, Perso.xls s'ouvre aussi ca c'est normal pour récupérer la macro mais dans le code comme je l'ai signalé c'est Perso.xls qui est activé avec
Code:
 Feuil1.Activate
au lieu de mon fichier excel à partir duquel j'ai lancé ma macro.

Merci beaucoup
 

Pierrot93

XLDnaute Barbatruc
Re : Comment lancer une macro VB sur n'importe quel fichier excel ?

Re

remplace :

Code:
Workbooks("Classeur1.xls").Sheets("Feuil1").Activate

par :

Code:
ActiveWorkbook.Sheets(1).Activate

en considérant que c'est bien sur le classeur actif que tu veux intervenir.

par contre si tu utilises le classeur de macro personnel "perso.xls", il est conseillé de le masquer :

barre de menu => fenêtre => masquer

@+
 

Discussions similaires

Réponses
9
Affichages
328
Réponses
3
Affichages
536
Compte Supprimé 979
C
Réponses
2
Affichages
299

Statistiques des forums

Discussions
312 342
Messages
2 087 434
Membres
103 545
dernier inscrit
agent3