Macro appelant une autre Macro

Bonjour,

Je travaille actuellement sur l'amélioration d'un programme vba existant.

Mon but était de pouvoir créer une macro2 qui appel une macro1( via fonction "Call" ou autre).

Cependant je tombe sur un os.

La macro1 en question fait apparaitre des boites de dialogues qui demandent certaines valeurs.

Comment puis-je faire pour que ces boites de dialogues soient complétées par la macro2 lors de l'appel de la macro1 ?

J'ai essayé plusieurs petites choses comme "Call Macro1(12,14,15)" où 12 14 et 15 seraient les valeurs demandées par les boites de dialogues mais cela ne fonctionne pas.

Quelqu'un aurait-il une astuce ?

Merci d'avance.

Bonjour,

Deux choix :

Variables publiques

Elles sont déclarées en entête du module (tout en haut), et peuvent être utilisées dans tout le projet (ou dans le module uniquement).

Exemple :

Dim maVal As Integer

Sub Macro1()
  MsgBox maVal
  Call Macro2
  MsgBox maVal
End Sub

Sub Macro2()
  If MsgBox("1 ou 2", vbYesNo, "CHOIX") = vbYes Then
    maVal = 1
  Else
    maVal = 2
  End If
End Sub

Macro paramétrée

L'idée est de passer un paramètre à la Macro2, le modifier dans cette macro2, pour qu'il revienne dans la Macro1 avec sa nouvelle valeur.

Exemple :

Sub Macro1()
Dim maVal As Integer
  MsgBox maVal
  Call Macro2(maVal)
  MsgBox maVal
End Sub

Sub Macro2(Valeur As Integer)
  If MsgBox("1 ou 2", vbYesNo, "CHOIX") = vbYes Then
    Valeur = 1
  Else
    Valeur = 2
  End If
End Sub

Merci beaucoup pour cette réponse rapide !

Je vais essayer ca dès que possible.

Rechercher des sujets similaires à "macro appelant"