|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Bonjour,
J'aimerais à partir d'une même macro la dupliquer sur les différents onglets de mon fichier excel. En sachant que seules les sources changeront sensiblement: En effet au lieu de 0610, il faut s'attendre à avoir 0710, 0810, 0910 etc... Je vous joins une partie de mon code : Code :
Vous remerciant par avance pour votre aide, Très bonne journée Magali |
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Assistant de Gestion - Responsable Informatique Inscription : juillet 2003 Messages : 646 ![]() |
Bonjour Mag555,
Au lieu de dupliquer une macro ce qui allourdi le fichier, il suffit de la mettre dans ThisWorkbook ... tout dépend de l'utilisation que l'on veut en faire A+
__________________
Vous avez la solution à votre problème, pensez au tag : est une touche qui appelle l'aide : Essayez, c'est assez performant et on trouve plein de choses.La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses. |
|
|
10
|
|
|
#3 |
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonsoir,
Généralement on ne duplique jamais une macro, on crée une fonction ou une procédure et on lui passe différentes valeurs en arguments. Hervé. |
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Peux-tu m'expliquer rapidement à quoi sert le Workbook? C'est un fichier qui stocke les fichiers sources?
Exemple: Si j'ai 20 sources utilisées au total dans mes différents onglets mais que dans la feuille actuelle, je n'en utilise que 3, lesquelles vais-je mettre dans le Workbook? Et comment se fera la liaison entre les fichiers dans le Workbook et mes codes? |
|
|
00
|
|
|
#5 | |||
|
Membre éclairé
![]() Inscription : juillet 2011 Messages : 141 ![]() |
A faire des traitements de niveau Workbook
Exemple : à l'ouverture du classeur .xls dans Workbook_Open(). __________________ Il vaut mieux définir les procédures communes dans un module. Ouvrir Excel. Dans le classeur souhaité, ouvrir le Visual Basic Editeur par Alt+F11, c-a-d : Cliquez sur l'Excel menu "Outils" > "Macro" > "Visual Basic Editeur" (VBE) Cliquez sur le VBE menu "Insérer" > "Module". Citation:
Dans la fenêtre d'Edition de Module1, copier-coller : Code :
___________ Si la discussion est résolue, vous pouvez cliquer sur le bouton En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.
|
|||
|
|
10
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 20 ![]() |
Merci mille fois pour cette réponse très etoffée MattChess.
Si j'ai bien compris, cela n'est pas gênant en soit que tout mon code soit contenu dans le userform de ma feuille ? Pour permettre à mes fichiers sources notamment d'être "variabilisés" sur les différentes feuilles, il me suffit d'entrer les codes ci-dessous dans un module de chaque feuille. La seule chose qui changera devrait être Code :
Public Const filenameSuffix610 = "0610" Je m'explique : Que deviendraient les lignes de sources de fichiers comme Code :
Désolée pour les questions qui fusent, mais débuter dans VBA, c'est pas une mince affaire ! |
||
|
|
00
|
|
|
#7 | |||||||
|
Membre éclairé
![]() Inscription : juillet 2011 Messages : 141 ![]() |
Un module est global. Il n'est pas lié à une feuille particulière. C'est pourquoi on peut mettre dans un module des procédures communes pour toutes les feuilles qu'elles les utilisent ou non.
Citation:
Citation:
Si on veut ensuite appeler la procédure commune FilterXls() du module, il faut extraire le suffixe du chemin saisi dans l'Userform. Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE (Visual Basic Editeur) d'Excel, copier-coller et valider par ENTER : Code :
? Left(Right("Ctrl Gestion -SG- analyse par postes -0910.xls", 8), 4) On a extrait le suffixe "0910" du nom du classeur en composant les fonctions d'extraction de chaînes Left() et Right(). Citation:
Code :
___________ En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.
|
|||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com