Lancer un userform, le fermer puis continuer l'exécution de la macro

Everlast03

XLDnaute Occasionnel
Bonjour,

Je pense que tout est dans le titre mais je vais quand même approfondir mon explication.
Je créé une macro qui, d'après un test lance un userform (ou apparait des données à consulter). Une fois que j'ai pris note de celles-ci je peux donc fermer l'userform (grâce à un bouton simple). Puis ensuite, je veux continuer à exécuter ma macro.

Mon fichier est énorme donc je poste ma macro :
Code:
Sub Macro()
fin = Range("a65535").End(xlUp).Row
cat1 = "Catégorie 1 (de 4 à 15J). Coûts moyens : 499€"
cat2= "Catégorie 2 (de 16 à 30J). Coûts moyens : 599€"
cat3 = "Catégorie 3 (de 31 à 51J). Coûts moyens : 699€"
cat4 = "Catégorie 4 (de 52 à 72J). Coûts moyens : 799€"
   
    For i = 14 To fin
    Cells(i, 23).Value = Cells(1, 1).Value - Cells(i, 3).Value
    
    If Cells(i, 23).Value > 9 And Cells(i, 23).Value < 16 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 39 And Cells(i, 23).Value < 46 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 84 And Cells(i, 23).Value < 91 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 144 And Cells(i, 23).Value < 151 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

'C est ici que je voudrais reprendre pour continuer mon test    
Next
End Sub

Merci d'avance
 

fhoest

XLDnaute Accro
Re : Lancer un userform, le fermer puis continuer l'exécution de la macro

Bonjour
tu dois mettre une variable public déclarer dans un modules type boolean que tu vérifie a l'entrée de ta macro
lors du click du bouton tu met celle ci = true
dans ta macro tu conditionne
I mavariable=true goto ici
tu met "ici:" ou tu veux reprendre le code et tu met le code ci dessous a la fermeture.

dans
Code:
Private Sub UserForm_Terminate()
call macro
End Sub
A+
 
Dernière édition:

Everlast03

XLDnaute Occasionnel
Re : Lancer un userform, le fermer puis continuer l'exécution de la macro

Bonjour
il suffit de faire appel a ta macro a la fermeture du usf
dans
Code:
Private Sub UserForm_Terminate()
call macro
End Sub
A+


Oui, mais si je veux continuer mon test (je ne veux pas relancer la macro sinon ça me lancera le même message), je veux qu'il fasse le test sur la ligne suivante et ainsi de suite... ??
 

Everlast03

XLDnaute Occasionnel
Re : Lancer un userform, le fermer puis continuer l'exécution de la macro

Bonjour
tu dois mettre une variable public déclarer dans un modules type boolean que tu vérifie a l'entrée de ta macro
lors du click du bouton tu met celle ci = true
dans ta macro tu conditionne
I mavariable=true goto ici
tu met "ici:" ou tu veux reprendre le code et tu met le code ci dessous a la fermeture.

dans
Code:
Private Sub UserForm_Terminate()
call macro
End Sub
A+

Euh j'ai pas tout compris comment mettre en boulean etc ... Tu pourrais expliquer ?
Je suis débutant :rolleyes:
 

fhoest

XLDnaute Accro
Re : Lancer un userform, le fermer puis continuer l'exécution de la macro

Re,
dans le haut d'un module
Code:
Public saut As Boolean


Sub Macro()
If saut = True Then GoTo ici
fin = Range("a65535").End(xlUp).Row
cat1 = "Catégorie 1 (de 4 à 15J). Coûts moyens : 499€"
cat2 = "Catégorie 2 (de 16 à 30J). Coûts moyens : 599€"
cat3 = "Catégorie 3 (de 31 à 51J). Coûts moyens : 699€"
cat4 = "Catégorie 4 (de 52 à 72J). Coûts moyens : 799€"
   
    For i = 14 To fin
    Cells(i, 23).Value = Cells(1, 1).Value - Cells(i, 3).Value
   
    If Cells(i, 23).Value > 9 And Cells(i, 23).Value < 16 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 39 And Cells(i, 23).Value < 46 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 84 And Cells(i, 23).Value < 91 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If

    If Cells(i, 23).Value > 144 And Cells(i, 23).Value < 151 Then
    UserForm1.Label1.Caption = Cells(i, 6).Value
    UserForm1.Label4.Caption = Cells(i, 23).Value
    UserForm1.Label6.Caption = cat1
    UserForm1.Label3.Caption = "Nombre de jours perdus au " & Cells(1, 1).Value & ":"
    UserForm1.Show
    End If
ici:
saut = False 'C est ici que je voudrais reprendre pour continuer mon test
Next
End Sub

dans le code du bouton
Code:
Private Sub CommandButton1_Click()
saut = True
'reste instruction a effectuer
End Sub

ne pas oublier le code du terminate
puis tester
si tu n'arrive pas joint le fichier ou un fichier sans données mais avec un code test un usf etc..
A+
 

fhoest

XLDnaute Accro
Re : Lancer un userform, le fermer puis continuer l'exécution de la macro

Je regarde ça pour demain a+
Voilà le fichier en retour modifié avec toute les catégories et rectifié au niveau des comparaisons etc...
A tester
A+
 

Pièces jointes

  • Copie de Copie de AT - Fichier général - 2012.xls
    199 KB · Affichages: 170
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch