Bonjour

J'aurais besoin pour le programme que je developpe actuellement de fermer un private sub depuis un sub.

Est ce possible? Et si oui, comment?

Merci

Pour plus d'infos :

J'ai dans un Useform avec 2 cases à cocher (Bdate et Bsemaine). Il y a un verrouillage pour empecher de cocher les cases en meme temps. J'ai egalement 3 champs de saisie (Sjour, Smois et Ssemaine). Deux sont affecté à la premiere case (Bdate avec Sjour et Smois) , le troisieme étant affecté à la deuxieme case (Bsemaine avec Ssemaine)
J'ai ensuite un bouton pour valider la ssaisie.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub Bmodesaisie_Click()
 
If Bdate.Value = True Then
    If Sjour.Value <> "" And Smois.Value <> "" Then
        Ssemaine.Value = 55
        Call Gestion.Validdate(Sjour.Value, Smois.Value, Ssemaine)
    Else
 
        If Sjour.Value = "" And Smois.Value = "" Then
            Message = "Manque jour et mois"
        End If
 
        If Sjour.Value = "" And Smois.Value <> "" Then
            Message = "Manque du jour"
        End If
 
        If Sjour.Value <> "" And Smois.Value = "" Then
            Message = "Manque du mois"
        End If
 
        Call MsgBox(Message, vbOKOnly, "ATTENTION")
 
    End If
End If
 
If Bsemaine.Value = True Then
    If Ssemaine.Value <> "" Then
        Sjour.Value = 0
        Smois.Value = 0
        Call Gestion.Validdate(Sjour.Value, Smois.Value, Ssemaine.Value)
    Else
        Call MsgBox("Manque numéro de semaine", vbOKOnly, "ATTENTION")
    End If
End If
 
End sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Sub Validdate(jour As Integer, mois As Integer, Ssemaine As Integer)
 
Dim dateacharger As Date
Dim dateref As Date
Dim datcalc As Date
Dim nbrejour As Long
Dim colonne As Integer
 
semaine = Ssemaine
 
Unload choixsaisie
 
    ActiveSheet.Shapes("bouton 1").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 2").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 3").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 4").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 5").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 6").Select
    Selection.Font.ColorIndex = 1
 
    ActiveSheet.Shapes("bouton 7").Select
    Selection.Font.ColorIndex = 1
 
If semaine = 55 Then
    dateacharger = DateSerial(Sheets("paramètres").Range("B3").Value, mois, jour)
    dateref = DateSerial(Sheets("paramètres").Range("B3").Value, 1, 1)
    datcalc = (dateref - 2) - 7 * Int((dateref - 2) / 7)
    datcalc = dateref - datcalc + 6
    nbrejour = DateDiff("d", datcalc, dateacharger, , vbFirstFullWeek)
    semaine = Int((nbrejour - 1) / 7) + 1
End If
 
For i = 1 To 1360
    If semaine = Sheets(fbd).Range("A" & i).Value And Sheets(fbd).Range("A" & i).Value <> "" Then
        colonne = i
    End If
Next
 
Sheets(fss).Range("C3") = Sheets(fbd).Cells(colonne, 3)
 
For i = 6 To 24
    For j = 2 To 8
        Sheets(fss).Cells(i, j).Value = Sheets(fbd).Cells(i + 2 + semaine * 26, j)
    Next
Next
 
Sheets(fss).Select
ActiveSheet.Shapes("Button 8").Select
Selection.Characters.Text = "Sauver la page"
 
Sheets(fss).Protect Password:=mdp, DrawingObjects:=True, Contents:=True, Scenarios:=True
 
Range("A1").Select
 
End Sub
Le probleme que j'ai est qu'une fois dans mon sub Validdate, je voudrais fermer le Private Sub Bmodesaisie_Click().

En effet, une fois que Validdate arrive a la fin de son execution, je reviens dans le private sub pour finir de lire le programme. Et cela me genere des erreurs pour la suite.