Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 15h27   #1
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
Par défaut Utiliser macros et boutons dans un autre fichier

Bonjour,

J'ai un fichier constitué de 2 feuilles (Sh1 et Sh2).
Chaque feuille contient des données.

J'ai traité ce fichier :
- j'ai rajouté une 3ème feuille
- j'ai créé des macros (modules 1 2 et 3) et des boutons (sur la feuille Sh2)

Mais en fait ce fichier, duquel je suis parti, est amené à évoluer et on va régulièrement m'en donner un nouveau contenant des données différentes, mais sous le même format. Mon traitement est d'ailleurs censé pouvoir s'adapter à un nouveau fichier. Je remplis certains éléments dans Sh1 en fonction de paramètres définis par l'utilisateur (au coup par coup) et de données présents dans Sh2.

Mon problème est le suivant :
Comment récupérer mes boutons et mes macros dans chaque nouveau fichier qu'on me donnera ?

(Dans l'idéal, je pourrais ouvrir chaque nouveau fichier et celui-ci contiendrait automatiquement mes macros, mes boutons en Sh2, ma nouvelle 3ème feuille et mes mises en forme...)

Est-ce que ce serait possible ?
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h29   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Bonjour,

Une solution est d'utiliser un classeur de macro complémentaire (xla)
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2012, 17h53   #3
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
Merci, ça marche nickel pour les macros, je ne connaissais pas !

Par contre, ça ne fait rien pour les boutons...

(et ni non plus pour la mise en forme de certaines cellules, mais ça c'est plus du détail et je peux m'en accommoder)
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h59   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
En créant une feuille avec tes boutons dans le fichier xla, tu peux appeler cette feuille et l’insérer dans le classeur actif.
Voir encore mieux, appeler directement tes macros via un ajout de menu dans le menu excel
Tu as plusieurs possibilités de lancement
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 11/01/2012, 11h03   #5
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
Citation:
Envoyé par jfontaine Voir le message
En créant une feuille avec tes boutons dans le fichier xla,
Lorsque j'ai fait "enregistrer sous" en fichier xla, il semble que seules mes macros ont été enregistrées.
Du coup, lorsque j'ai ouvert le fichier xls "originel" puis le fichier xla, mes macros ont été insérées dans le xls, mais pas mes boutons.
Tu veux dire qu'il serait possible d'éditer le fichier xla afin d'ajouter des boutons ?
(en tout cas quand je l'ouvre seul rien ne semble possible...)

[EDIT] J'ai trouvé des infos là-dessus ici :
http://www.developpez.net/forums/d82...les-excel-xla/


Citation:
Envoyé par jfontaine Voir le message
tu peux appeler cette feuille et l’insérer dans le classeur actif.
Pourquoi pas, le problème est ici que mon fichier xla(m) ne contient pas non plus de feuille.


Citation:
Envoyé par jfontaine Voir le message
Voir encore mieux, appeler directement tes macros via un ajout de menu dans le menu excel
Là j'avoue que ça dépasse mon niveau de compétences...
Tu pourrais me dire en 2 mots comment faire ça stp ?

J'ai pu modifier mon fichier xla (après avoir passé à False le paramètre Isaddin de Thisworkbook) en rajoutant les feuilles Sh3 et Sh4 dont j'aurai besoin dans un fichier xls ultérieur et en insérant dans Sh3 les boutons Bt1 et Bt2 nécessaires à l'exécution de mon traitement.

Maintenant il ne m'est plus permis de sauver ce fichier xla, à moins de remettre le paramètre Isaddin à True : mais du coup je perds à nouveau les feuilles Sh3 et Sh4...
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h11   #6
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Je te joint un fichier xla qui me permet de mettre en forme un fichier CSV via un menu dans Excel (Utilisé sous excel 2003)

Import_Fichiers_CSV.zip
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2012, 11h29   #7
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
Je te remercie. Cela pourra m'être utile dans le futur. Ce n'est pas la méthode que je préfère car si je comprends bien il faudrait que je code la création des 2 feuilles et des boutons afin de l'ajouter au fichier à importer.

En revanche pour ma problématique actuelle, je préférerais m'en tenir à ta première solution : insérer dans le fichier à traiter mes 2 feuilles et les macros associées...
Comment je pourrais faire ça ?
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h48   #8
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Tu peux utiliser l'evenement Workbook_open pour afficher la feuille
Code :
ThisWorkbook.Sheets("MaFeuilleXla").Copy before:=ActiveWorkbook.Sheets(1)
Par contre, sans menu, il te faudra décocher et recocher la macro complémentaire pour relancer l'apparition de la feuille
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h16   #9
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
J'ai rajouté ça dans "Thisworkbook" (du fichier xla) :
Code :
1
2
3
Private Sub Workbook_Open()
ThisWorkbook.Sheets("Fill_Input").Copy after:=ActiveWorkbook.Sheets(xlLast)
End Sub
1) J'ouvre le fichier xls à traiter
2) j'ouvre le fichier xla contenant macros, feuilles et boutons
-> j'ai une erreur et la feuille "Fill_Input" ne s'affiche pas

Erreur d'exécution 1004:
Excel ne parvient pas à insérer les feuilles dans le classeur de destination car il contient moins de lignes et de colonnes que le classeur source. etc...

Citation:
Envoyé par jfontaine Voir le message
Par contre, sans menu, il te faudra décocher et recocher la macro complémentaire pour relancer l'apparition de la feuille
Je pense contourner ce problème en ouvrant d'abord le fichier à traiter, puis le fichier xla, non ?
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h36   #10
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 235
Points : 7 235
Citation:
Je pense contourner ce problème en ouvrant d'abord le fichier à traiter, puis le fichier xla, non ?
Je viens de faire un essais, et apparemment meme problème. Erreur 1004.
Par contre, quand je choisis le débuggage puis clic sur la réactivation du code, il passe bien sur la ligne sans erreur. (peut être un problème de timing de création des objets)
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h01   #11
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
C'est la même erreur 1004 que la mienne ?

Qu'appelles-tu "réactivation du code" ?
Moi ça ne passe jamais sans erreur sur la ligne...
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h25   #12
Invité de passage
 
Homme
Ingénieur validation
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur validation
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : 3
Points : 3
Ah ah... J'ai trouvé quelque chose !

Au lieu d'enregistrer mon fichier en xlam , je l'ai sauvé en xla tout court.
Eh bien à l'ouverture, plus d'erreur. Et la feuille est bien insérée !
Live83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h35.


 
 
 
 
Partenaires

Hébergement Web