Exploration d'une macro à partir d'une autre macro

Bonjour à tous,

Débutant en VBA, j'aimerais depuis une macro principale, faire appel à une autre macro. Jusque là je m'en sors.

Seulement lorsque cette seconde macro appelée est terminée j'aimerais revenir vers la macro principale mais à un certain stade de la macro principale et non au tout debut.

Je joins un fichier à titre d'exemple. Je scrute la macro principale qui est Macro1. Ensuite je viens ouvrir le UserForm1. En fonction du click sur Choix1 ou Choix2 j’exécute une macro.

Par la suite je voudrais revenir à Macro1 mais repartir de la ligne "Sheets.Add After:=Worksheets(1)"

Pourriez-vous me venir en aide svp ?

Merci à vous

10appel-macro.xlsm (17.85 Ko)

JB

bonjour,

cela fonctionne, non ?

Mettez 2 msgboxes pour verifier

Sub Rectangle1_Cliquer()

     Dim i     As Integer
     For i = 1 To 100

          ActiveSheet.Range("A" & i).Value = "Essai_principal_" & i
     Next
     MsgBox "partir vers l'userform"
     UserForm1.Show
     '*******************************************************************
     'Revenir vers cette macro après avoir cliqué sur "Choix1" ou "Choix2" dans UserForm1
     '*******************************************************************
     MsgBox "revenir de l'userform"

     Sheets.Add After:=Worksheets(1)
     ActiveSheet.Name = "TEST"
End Sub

Bonsoir,

Oui effectivement cela fonctionne, merci :)

Autre question: J'aimerais dans la macro ci-dessous, faire appel à la macro Zone 0 dans la première boule et uniquement la macro Zone 1 dans les autres boucles

 msg_impression.Show 0
For s = 4 To ThisWorkbook.Worksheets.Count
Worksheets(s).Select
Call Zone 1
msg_impression.Repaint
Next
Unload msg_impression

Comment procéder s'il vous plait ?

JB

msg_impression.Show 0
For s = 4 To ThisWorkbook.Worksheets.Count
Worksheets(s).Select

zone IIf(s = 4, 0, 1)                'oubien ceci (plus court), call n'est pas nécessaire
If s = 4 Then zone 0 Else zone 1      'oubien ceci

msg_impression.Repaint
Next
Unload msg_impression

A nouveau BsAlv,

Merci pour votre contribution. Je pensais développer le code avec un compteur. On part de 0 et on l'incrémente à la fin. Ensuite on appelle la macro en fonction du résultat du compteur.

Est-ce réalisable ? Je pensais à ceci:

cpt=0
msg_impression.Show 0
For s = 4 To ThisWorkbook.Worksheets.Count
Worksheets(s).Select
If cpt= 0 then Call Zone 1
else
Call Zone 2
msg_impression.Repaint
cpt=cpt + 1
Next
end if
Unload msg_impression

Bonne fin de soirée

JB

bonjour,

* vos "If...Else...Endif" et "For...Next" sont utilisé mixte, cela est interdit, l'un doit rester dans l'autre.

* ce "If...Else...Endif", on l'écrit sur plusieurs lignes ou on l'écrit sur une ligne sans le endif, comme ceci, donc il faut s'habituer à cela

  ' méthode 1 (normal)
     If cpt = 0 Then
          zone 1
     Else
          zone 2
     End If

     'méthode 2 (plus court, moins lisible ???)
     If cpt = 0 Then zone 1 Else zone 2

     'methode 3 (plusieurs conditions à vérifier
     If cpt = 0 Then
          zone 1
     ElseIf i = 2 Then
          zone 2
     ElseIf j = 3 Then
          zone 3
     End If

     'méthode 4 avec select case
     Select Case cpt
          Case 1: MsgBox "1"
          Case 2: MsgBox "2"
          Case 3: MsgBox "3"
          Case Else: MsgBox "else"
     End Select

je ne sais pas ce que vous voulez faire avec le compteur. Ceci ?

     cpt = 0
     msg_impression.Show 0
     For s = 4 To ThisWorkbook.Worksheets.Count
          Worksheets(s).Select
          Zone cpt + 1     'appeler cette macro avec le variable cpt+1
          If cpt = 0 Then msg_impression.Repaint     'sauf la première boucle
          cpt = cpt + 1     'incrementer cpt
     Next

     Unload msg_impression

C'est avec un Userform, sinon on peut utiliser un variable (public?) qu'on déclare en haut de la module. Tout dépend des circonstances.

Bonjour BasAlv,

Merci pour votre retour. J'ai utilisé le code proposé ci-dessous et ajouté une autre condition avec la fonction And. Tout fonctionne, c'est parfait.

If s = 4 Then zone 0 Else zone 1

Je clos le sujet.

Bonne journée

JB

Rechercher des sujets similaires à "exploration macro partir"