Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro qui modifie une macro

3 réponses
Avatar
titou
Bonjour,

Comment peut ton faire pour modifier du code dans une macro à l'aide d'une
autre macro?

Ex:

je veux rajouter du code dans une macro nommée "Mise en forme du tableau" à
partir de données saisie dans une feuil excel par un utilisateur
la macro "mise en forme du tableau" possède un code qui remplace le mot A1J
par CJE.sachant que A1J et une type de compteur qui est égale à CJE .

maintenant un nouveau type de compteur arrive mais macro par conséquent ne
le prendra pas en compte, c'est pour cela que je voudrai à partir des info
saisie dans deux cellules ex: B1J ( Nouveau type de compteur) en cellule a1
et en cellule a2 la nouvelle appelation CJEM faire en sorte qu'une macro
rentre dans la macro " Mise en forme du tableau" et qu'elle ajoute le code en
fonction des saisies faites.

jesper que c'est assez clair

j'ai essayer avec l'enregistreur mais il s'arrete au niveau de la feuil VBA
et il ne fai pas les modifs dans la macro qui j'ai effectués pendant
l'enregistrement

Merci d'avance

Si les explications ne sont pas clair n'hésiter ps à me le faire savoir

Thierry

3 réponses

Avatar
Pierre Fauconnier
Bonjour

Une solution est de supprimer le module qui contient la macro à
modifier et d'importer un nouveau module comprenant la macro modifiée.

Sub MacroQuiTransformeMacro()

Application.VBE.ActiveVBProject.VBComponents.Remove
Application.VBE.ActiveVBProject.VBComponents("module1")
Application.VBE.ActiveVBProject.VBComponents.Import
"d:donnéesmodule1.bas"
End Sub

Ok?

titou a exposé le 06/06/2007 :
Bonjour,

Comment peut ton faire pour modifier du code dans une macro à l'aide d'une
autre macro?

Ex:

je veux rajouter du code dans une macro nommée "Mise en forme du tableau" à
partir de données saisie dans une feuil excel par un utilisateur
la macro "mise en forme du tableau" possède un code qui remplace le mot A1J
par CJE.sachant que A1J et une type de compteur qui est égale à CJE .

maintenant un nouveau type de compteur arrive mais macro par conséquent ne
le prendra pas en compte, c'est pour cela que je voudrai à partir des info
saisie dans deux cellules ex: B1J ( Nouveau type de compteur) en cellule a1
et en cellule a2 la nouvelle appelation CJEM faire en sorte qu'une macro
rentre dans la macro " Mise en forme du tableau" et qu'elle ajoute le code en
fonction des saisies faites.

jesper que c'est assez clair

j'ai essayer avec l'enregistreur mais il s'arrete au niveau de la feuil VBA
et il ne fai pas les modifs dans la macro qui j'ai effectués pendant
l'enregistrement

Merci d'avance

Si les explications ne sont pas clair n'hésiter ps à me le faire savoir

Thierry


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")

Avatar
thierry77.georges
On 6 juin, 17:59, Pierre Fauconnier
wrote:
Bonjour

Une solution est de supprimer le module qui contient la macro à
modifier et d'importer un nouveau module comprenant la macro modifiée.

Sub MacroQuiTransformeMacro()

Application.VBE.ActiveVBProject.VBComponents.Remove
Application.VBE.ActiveVBProject.VBComponents("module1")
Application.VBE.ActiveVBProject.VBComponents.Import
"d:donnéesmodule1.bas"
End Sub

Ok?

titou a exposé le 06/06/2007 :





Bonjour,

Comment peut ton faire pour modifier du code dans une macro à l'aide d'une
autre macro?

Ex:

je veux rajouter du code dans une macro nommée "Mise en forme du tabl eau" à
partir de données saisie dans une feuil excel par un utilisateur
la macro "mise en forme du tableau" possède un code qui remplace le m ot A1J
par CJE.sachant que A1J et une type de compteur qui est égale à CJE .

maintenant un nouveau type de compteur arrive mais macro par conséque nt ne
le prendra pas en compte, c'est pour cela que je voudrai à partir des info
saisie dans deux cellules ex: B1J ( Nouveau type de compteur) en cellul e a1
et en cellule a2 la nouvelle appelation CJEM faire en sorte qu'une macro
rentre dans la macro " Mise en forme du tableau" et qu'elle ajoute le c ode en
fonction des saisies faites.

jesper que c'est assez clair

j'ai essayer avec l'enregistreur mais il s'arrete au niveau de la feuil VBA
et il ne fai pas les modifs dans la macro qui j'ai effectués pendant
l'enregistrement

Merci d'avance

Si les explications ne sont pas clair n'hésiter ps à me le faire sa voir

Thierry


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Bonjour,

J'ai du mal a comprendre le code pourrai tu me donner des explications
deçu stp.


Merci

Thierry


Avatar
Pierre Fauconnier
Bonsoir

Je suppose que tu dois déployer ta nouvelle macro sur plusieurs
machines, sinon, tu irais plus vite de modifier le code à la main.

L'idée est donc de supprimer l'entièreté du module qui contient ma
macro devenue obsolète, et de le remplacer par un nouveau module
contenant la macro modifiée, en plus bien sûr de toutes les procédures
et fonctions qui s'y trouvaient déjà.

la première ligne supprime le module, la seconde ajoute le nouveau
module. Pour créer le nouveau module, tu dois, dans l'éditeur VBE,
effectuer un clic droit sur le module à exporter (donc avec le nouveau
code de la macro), et exporter le module. Cette opération crée un
fichier NomDuModule.bas. C'est ce fichier, avec son chemin complet, que
tu renseignes dans la deuxième ligne du code que je t'ai proposé.

Reviens si ce n'est pas clair.

P.S.: Je suis confus pour les explications "deçu(es"... ;-)



vient de nous annoncer :
J'ai du mal a comprendre le code pourrai tu me donner des explications
deçu stp.


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")