|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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 ? |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 919 ![]() |
Bonjour,
Une solution est d'utiliser un classeur de macro complémentaire (xla)
__________________
Jérôme Citation:
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.
|
|
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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) |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 919 ![]() |
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:
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.
|
|
|
|
20
|
|
|
#5 | |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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/ ![]() Pourquoi pas, le problème est ici que mon fichier xla(m) ne contient pas non plus de feuille. Citation:
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... |
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 919 ![]() |
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:
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.
|
|
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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 ? |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 919 ![]() |
Tu peux utiliser l'evenement Workbook_open pour afficher la feuille
Code :
ThisWorkbook.Sheets("MaFeuilleXla").Copy before:=ActiveWorkbook.Sheets(1)
__________________
Jérôme Citation:
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.
|
|
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
J'ai rajouté ça dans "Thisworkbook" (du fichier xla) :
Code :
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... Je pense contourner ce problème en ouvrant d'abord le fichier à traiter, puis le fichier xla, non ? |
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 919 ![]() |
Citation:
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:
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.
|
||
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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... |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Ingénieur validation Inscription : janvier 2012 Messages : 20 ![]() |
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 !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com