Bonjour,

J'ai un souci à l'ouverture d'un windowsform, appelé à partir d'une autre fenêtre. En effet, la procédure événementielle qui devrait être exécutée à l'ouverture, de la forme "Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load" ne l'est pas. C'est une autre procédure existante dans le code de ce formulaire qui est exécuté.

Je sèche depuis deux jours là-dessus. Voici mon code (Je n'en suis pas très fier, mais je ne suis pas un spécialiste...)

Code VB.NET : 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
Public Class Absence1
 
    Dim Durée(3), NbJours, Nb1, Date2, Jour, NbOuvré, DateEnCours, Fériés(10), NbFériés, Test
    Dim JourValide(2), DuréeAbsence(2)
 
    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub
 
    Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Initialisation des champs du formulaire
        Me.Label1.Text = NomAgent
 
        Me.DateTimePicker1.Value = Today
        Me.DateTimePicker2.Value = Today
 
        Me.ListBox1.Items.Clear()
 
        'Chargement en mémoire des durées par type d'absence
        Conn.Open(ChaineConnexion)
 
        Rst = New ADODB.Recordset
        Rst.CursorLocation = 3
        Rst.CursorType = 0
        Rst.LockType = 1
 
        Rst.Open("Select * from [Durées]", Conn)
 
        If Rst.RecordCount = 0 Then
            Rst.Close()
            Conn.Close()
            Exit Sub
        End If
 
        ReDim Durée(Rst.RecordCount)
        For i = 1 To Rst.RecordCount
            Durée(i) = Rst(1).Value
            Me.ListBox1.Items.Add(Rst(0).Value)
            Rst.MoveNext()
        Next
 
        Rst.Close()
 
        'Chargement en mémoire des jours féries
 
        Rst = New ADODB.Recordset
        Rst.CursorLocation = 3
        Rst.CursorType = 0
        Rst.LockType = 1
        Rst.Open("Select * from [Férié] ORDER BY Férié", Conn)
        If Rst.RecordCount = 0 Then
            Rst.Close()
            Conn.Close()
            Exit Sub
        End If
        NbFériés = Rst.RecordCount
        ReDim Fériés(NbFériés)
        For i = 1 To NbFériés
            Fériés(i) = Rst(0).Value
            Rst.MoveNext()
        Next
 
        Rst.Close()
        Conn.Close()
 
        CalculJours()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ChaineRecherchée
        Conn.Open(ChaineConnexion)
        Rst = New ADODB.Recordset
        Rst.CursorLocation = 3
        Rst.CursorType = 0
        Rst.LockType = 1
 
        For i = 0 To Nb1
            Date2 = DateAdd("d", i, DateTimePicker1.Value)
            DateEnCours = Format(Date2, "dd/MM/yyyy")
 
            Test = True
 
            For j = 1 To NbFériés
                If DateEnCours = Fériés(j) Then Test = False : Exit For
            Next
 
            Jour = Format(Date2, "dddd")
            If Jour <> "samedi" And Jour <> "dimanche" And Test Then
                ChaineRecherchée = Year(Date2) & "-" & Date2.DayOfYear & "-" & _
                    Format(NumAgent, "00") & "-%"
                Rst.Open("Select * from [Base] WHERE Code LIKE'" & ChaineRecherchée & "'", Conn, ADODB.CursorTypeEnum.adOpenDynamic, _
                     ADODB.LockTypeEnum.adLockOptimistic)
                Select Case Rst.RecordCount
                    Case 0
                        Rst.AddNew()
 
                        Rst(0).Value = Year(Date2) & "-" & Date2.DayOfYear & "-" & _
                    Format(NumAgent, "00") & "-01"
                        Rst(1).Value = Format(Date2, "ddd/MM/yyyy")
                        Rst(3).Value = ListBox1.Items(ListBox1.SelectedIndex)
                        Rst(4).Value = Durée(ListBox1.SelectedIndex + 1)
                        Rst.Update()
 
                    Case Else
                        Rst.Sort = "Code"
                        Rst.MoveLast()
                        If Rst(2).Value Is DBNull.Value Then
                            Rst(2).Value = Format(Now, "g")
                            Rst.Update()
                            Texte = "Fin du service  : "
                            Son = "BeepOkFin"
                        Else
                            Numpointage = Rst.RecordCount + 1
                            Rst.AddNew()
                            Rst(0).Value = Year(Date2) & "-" & Date2.DayOfYear & "-" & _
                    Format(NumAgent, "00") & "-" & Format(CInt(Numpointage), "00")
                            Rst(1).Value = Format(Date2, "ddd/MM/yyyy")
                            Rst(3).Value = ListBox1.Items(ListBox1.SelectedIndex)
                            Rst(4).Value = Durée(ListBox1.SelectedIndex + 1)
                            Rst.Update()
                        End If
                End Select
            End If
            Rst.Close()
        Next
        Conn.Close()
    End Sub
 
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Label3.Text = Durée(ListBox1.SelectedIndex + 1) & " heures/Jour"
    End Sub
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
        CalculJours()
    End Sub
 
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
        CalculJours()
    End Sub
 
    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
        CalculJours()
    End Sub
 
 
    Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
        CalculJours()
    End Sub
 
    Private Sub CalculJours()
 
        NbOuvré = 0
        Nb1 = DateDiff(DateInterval.Day, DateTimePicker1.Value, DateTimePicker2.Value) + 1
 
        ReDim JourValide(Nb1)
        ReDim DuréeAbsence(Nb1)
        For i = 0 To Nb1 - 1
            Date2 = DateAdd("d", i, DateTimePicker1.Value)
            DateEnCours = Format(Date2, "dd/MM/yyyy")
            Test = True
 
            For j = 1 To NbFériés
                If DateEnCours = Fériés(j) Then Test = False : Exit For
            Next
 
            Jour = Format(Date2, "dddd")
            If Jour <> "samedi" And Jour <> "dimanche" And Test Then
                NbOuvré = NbOuvré + 1
                JourValide(i) = DateEnCours
                DuréeAbsence(i) = Durée(ListBox1.SelectedIndex + 1)
                If RadioButton2.Checked = True And i = 0 Then NbOuvré = NbOuvré - 0.5
                If RadioButton3.Checked = True And i = Nb1 Then NbOuvré = NbOuvré - 0.5
            End If
        Next
 
        Label2.Text = NbOuvré & " jours"
 
 
 
    End Sub
    Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
        CalculJours()
 
    End Sub
 
 
 
 
    Private Sub DateTimePicker2_ValueChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
        CalculJours()
    End Sub
 
End Class


A l'appel de ce formulaire, c'est la procédure "Private Sub RadioButton1_CheckedChanged" qui s'exécute en premier.

pourriez vous m'aider ?

Merci de votre réponse.