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 subLe probleme que j'ai est qu'une fois dans mon sub Validdate, je voudrais fermer le Private Sub Bmodesaisie_Click().
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
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.
Partager