Bonjour tout le monde,

J'ai ce code qui me génère l'erreur suivante :
erreur d'automation : l'objet invoqué s'est déconnecté de ses clients

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
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
Sub rempljourn()
 
option explicit
dim dater as date
dim nom as string
dim nom1 as string
dim fin as integer
dim fin1 as integer
dim sem as integer
dim ann as integer
dim jr as integer
dim num as integer
Dim num1 As Integer
dim num2 as integer
dim num3 as integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
 
If menu.Listjourn.ListIndex = -1 Then
    MsgBox "VEUILLEZ SELECTIONNER UNE JOURNEE !! ", vbCritical
    Exit Sub
End If
 
dater1 = Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
 
ann = 2019 'Year(dater1)  'année de la date
nom = "trav" & ann 'nom de la feuille à remplir
nom1 = "cycl" & ann 'nom de la feuille cycle
fin = Sheets(nom).Range("c3").Value + 7 'ligne a saisir
fin1 = Sheets(nom).Range("c3").Value + 6 'numero ligne fin de saisi horaire
If fin1 = 6 Then fin1 = 7
'sem = Semaine(dater1) 'numero de semaine
'jr = Weekday(dater1, vbMonday) 'numero jour de la semaine
 
Load saisjourn
 
  With saisjourn.listsais.ColumnHeaders
        .Clear
        .Add , , "NUM AGENT"
        .Add , , "AGENT"
        .Add , , "HEURE DEBUT"
        .Add , , "HEURE FIN"
        .Add , , "PAUSE DEBUT"
        .Add , , "PAUSE FIN"
        .Add , , "HEURES TRAVAIL"
        .Add , , "HEURES SUP"
        .Add , , "NUM LIGN"
        .Add , , "NUM SEMAINE"
        .Add , , "COMMENTAIRES"
    End With
 
    For a = 5 To 102
        num = Sheets("listagent").Range("a" & a).Value  'numero agent
        If Sheets("listagent").Range("b" & a).Value = "" Then Exit For
        For b = 7 To fin1                                                               'recherche si la journée est déjà saisi
            If num = Sheets(nom).Range("a" & a).Value Then                              'recherche l'agent dans la liste des journées saisi de l'année sélectionnée
                If dater1 = Sheets(nom).Range("c" & b).Value Then    'recherche si la date correspond à la journée saisi
                    With saisjourn.listsais
                        .ListItems.Add Sheets(nom).Range("a" & b).Value                                                        'numero agent
                        With .ListItems(saisjourn.listsais.ListItems.Count)
                            .ListSubItems.Add = Sheets(nom).Range("b" & b).Value      '1 nom prenom agent
                            .ListSubItems.Add = Sheets(nom).Range("d" & b).Value    '2 heure debut travail
                            .ListSubItems.Add = Sheets(nom).Range("e" & b).Value    '3 heure fin travail
                            .ListSubItems.Add = Sheets(nom).Range("f" & b).Value    '4 heure debut pause
                            .ListSubItems.Add = Sheets(nom).Range("g" & b).Value    '5 heure fin pause
                            .ListSubItems.Add = Sheets(nom).Range("i" & b).Value    '6 nombre heures travaillees
                            .ListSubItems.Add = Sheets(nom).Range("j" & b).Value    '7 nombre heures sup
                            .ListSubItems.Add = b                                   '8 numero de ligne a modifier
                            .ListSubItems.Add = sem                                 '9 numero de la semaine
                            .ListSubItems.Add = Sheets(nom).Range("l" & b).Value   '10 commentaires
                        End With
                    End With
 
               Else
                   If a = fin1 Then 'saisi depuis liste agent
                       For c = 7 To 104 'recherche du type de semaine dans le cycle
                            If num = Sheets(nom1).Range("a" & c).Value Then 'décide nouvelle ligne si journée pas trouver
                                num2 = Right(Sheets(nom2).Range(Cells(c, sem + 2)).Value, 1) 'numero de la semaine de 1 a 4
                                num3 = (num2 * 4) - 2 'détermine la colonne de départ pour récupérer donnée
 
                                With saisjourn.listsais
                                    .ListItems.Add Sheets("listagent").Range("a" & a).Value   'numero agent
                                    With .ListItems(saisjourn.listsais.ListItems.Count)
                                        .ListSubItems.Add = Sheets("listagent").Range("b").Value & " " & Sheets("listagent").Range("c" & a).Value '1 nom prenom agent
                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3)).Value        '2 heure debut travail
                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 1)).Value    '3 heure fin travail
                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 2)).Value   '4 heure debut pause
                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 3)).Value    '5 heure fin pause
                                        .ListSubItems.Add = (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(3).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(2).Text) - (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(5).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(4).Text) '6 saisi nombre heures travaillees
                                        .ListSubItems.Add = 0 '7 saisi heure sup
                                        .ListSubItems.Add = fin '8 saisi sur nouvelle ligne
                                    End With
                                End With
                             fin = fin + 1
                            End If
                        Next c
 
                    End If
                End If
            End If
        Next b
    Next a
 
    saisjourn.Label7.Caption = "HEURE DEBUT"
    saisjourn.Label8.Caption = "HEURE FIN"
    saisjourn.Label9.Caption = "PAUSE DEBUT"
    saisjourn.Label10.Caption = "PAUSE FIN"
    saisjourn.Label11.Caption = "NOMBRE HEURES"
    saisjourn.Label12.Caption = "NOMBRE HEURES SUP"
    saisjourn.infodate.Caption = Format(dater1, "dd-mmm-yyyy")
 
saisjourn.listsais.View = lvwReport
 
saisjourn.Show vbModal
 
 
fin1 = fin1 + 1
b = 0
For a = fin1 To fin
 
    Sheets(nom).Range("b" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(1).Text
    Sheets(nom).Range("c" & a).Value = saisjourn.infodate.Caption
    Sheets(nom).Range("d" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(2).Text
    Sheets(nom).Range("e" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(3).Text
    Sheets(nom).Range("f" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(4).Text
    Sheets(nom).Range("g" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(5).Text
    Sheets(nom).Range("h" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(6).Text
    Sheets(nom).Range("i" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(7).Text
    Sheets(nom).Range("k" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(10).Text
    b = b + 1
Next a
 
If saisjourn.Optoui.Value = True Then
    For b = 7 To 372
        dater = Day(Sheets(nom).Range("o" & b).Value) & "-" & Month(Sheets(nom).Range("o" & b).Value) & "-" & Year(Sheets(nom).Range("o" & b).Value)
        If dater = saisjourn.infodate.Caption = dater Then
            Sheets(nom).Range("p" & b).Value = "saisi"
            Exit For
        End If
    Next b
End If
 
 
Unload saisjourn
 
End Sub
Mon problème vient de la variable "dater" initialiser au format date.
Ces essais ci dessous m'ont donné que le format de l'élément récupérer était bien une date et même si je change le format le problème n'est pas résolu.
Avez vous une suggestion ?
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
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
 
option explicit
dim dater as date
dim nom as string
dim nom1 as string
dim fin as integer
dim fin1 as integer
dim sem as integer
dim ann as integer
dim jr as integer
dim num as integer
Dim num1 As Integer
dim num2 as integer
dim num3 as integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
 
Sub rempljourn()
 
If menu.Listjourn.ListIndex = -1 Then
    MsgBox "VEUILLEZ SELECTIONNER UNE JOURNEE !! ", vbCritical
    Exit Sub
End If
 
MsgBox menu.Listjourn.List(menu.Listjourn.ListIndex, 0)
MsgBox IsDate(menu.Listjourn.List(menu.Listjourn.ListIndex, 0)) & " - " & Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
'MsgBox dater1
dater1 = Format(menu.Listjourn.List(menu.Listjourn.ListIndex, 0), "dd/mm/yyyy")
 
ann = 2019 'Year(dater1)  'année de la date
nom = "trav" & ann 'nom de la feuille à remplir
nom1 = "cycl" & ann 'nom de la feuille cycle
fin = Sheets(nom).Range("c3").Value + 7 'ligne a saisir
fin1 = Sheets(nom).Range("c3").Value + 6 'numero ligne fin de saisi horaire
If fin1 = 6 Then fin1 = 7
'sem = Semaine(dater1) 'numero de semaine
'jr = Weekday(dater1, vbMonday) 'numero jour de la semaine
 
Load saisjourn
 
  '  With saisjourn.listsais.ColumnHeaders
 '       .Clear
'        .Add , , "NUM AGENT"
'        .Add , , "AGENT"
'        .Add , , "HEURE DEBUT"
'        .Add , , "HEURE FIN"
'        .Add , , "PAUSE DEBUT"
'        .Add , , "PAUSE FIN"
'        .Add , , "HEURES TRAVAIL"
'        .Add , , "HEURES SUP"
'        .Add , , "NUM LIGN"
'        .Add , , "NUM SEMAINE"
'        .Add , , "COMMENTAIRES"
'    End With
 
'    For a = 5 To 102
'        num = Sheets("listagent").Range("a" & a).Value  'numero agent
'        If Sheets("listagent").Range("b" & a).Value = "" Then Exit For
'        For b = 7 To fin1                                                               'recherche si la journée est déjà saisi
'            If num = Sheets(nom).Range("a" & a).Value Then                              'recherche l'agent dans la liste des journées saisi de l'année sélectionnée
'                If dater1 = Sheets(nom).Range("c" & b).Value Then    'recherche si la date correspond à la journée saisi
'                    With saisjourn.listsais
'                        .ListItems.Add Sheets(nom).Range("a" & b).Value                                                        'numero agent
'                        With .ListItems(saisjourn.listsais.ListItems.Count)
'                            .ListSubItems.Add = Sheets(nom).Range("b" & b).Value      '1 nom prenom agent
'                            .ListSubItems.Add = Sheets(nom).Range("d" & b).Value    '2 heure debut travail
'                            .ListSubItems.Add = Sheets(nom).Range("e" & b).Value    '3 heure fin travail
'                            .ListSubItems.Add = Sheets(nom).Range("f" & b).Value    '4 heure debut pause
'                            .ListSubItems.Add = Sheets(nom).Range("g" & b).Value    '5 heure fin pause
'                            .ListSubItems.Add = Sheets(nom).Range("i" & b).Value    '6 nombre heures travaillees
'                            .ListSubItems.Add = Sheets(nom).Range("j" & b).Value    '7 nombre heures sup
'                            .ListSubItems.Add = b                                   '8 numero de ligne a modifier
'                            .ListSubItems.Add = sem                                 '9 numero de la semaine
'                            .ListSubItems.Add = Sheets(nom).Range("l" & b).Value   '10 commentaires
'                        End With
'                    End With
 
 '               Else
 '                   If a = fin1 Then 'saisi depuis liste agent
 '                       For c = 7 To 104 'recherche du type de semaine dans le cycle
 '                           If num = Sheets(nom1).Range("a" & c).Value Then 'décide nouvelle ligne si journée pas trouver
 '                               num2 = Right(Sheets(nom2).Range(Cells(c, sem + 2)).Value, 1) 'numero de la semaine de 1 a 4
 '                               num3 = (num2 * 4) - 2 'détermine la colonne de départ pour récupérer donnée
 
'                                With saisjourn.listsais
'                                    .ListItems.Add Sheets("listagent").Range("a" & a).Value   'numero agent
'                                    With .ListItems(saisjourn.listsais.ListItems.Count)
'                                        .ListSubItems.Add = Sheets("listagent").Range("b").Value & " " & Sheets("listagent").Range("c" & a).Value '1 nom prenom agent
'                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3)).Value        '2 heure debut travail
'                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 1)).Value    '3 heure fin travail
'                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 2)).Value   '4 heure debut pause
'                                        .ListSubItems.Add = Sheets("listagent").Range(Cells(a, num3 + 3)).Value    '5 heure fin pause
'                                        .ListSubItems.Add = (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(3).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(2).Text) - (saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(5).Text - saisjourn.listsais.ListItems(saisjourn.listsais.ListItems.Count).ListSubItems(4).Text) '6 saisi nombre heures travaillees
'                                        .ListSubItems.Add = 0 '7 saisi heure sup
'                                        .ListSubItems.Add = fin '8 saisi sur nouvelle ligne
'                                    End With
'                                End With
 '                               fin = fin + 1
 '                           End If
 '                       Next c
 
  '                  End If
  '              End If
  '          End If
   '     Next b
   ' Next a
 
  '  saisjourn.Label7.Caption = "HEURE DEBUT"
  '  saisjourn.Label8.Caption = "HEURE FIN"
  '  saisjourn.Label9.Caption = "PAUSE DEBUT"
  '  saisjourn.Label10.Caption = "PAUSE FIN"
  '  saisjourn.Label11.Caption = "NOMBRE HEURES"
  '  saisjourn.Label12.Caption = "NOMBRE HEURES SUP"
  '  saisjourn.infodate.Caption = Format(dater1, "dd-mmm-yyyy")
 
'saisjourn.listsais.View = lvwReport
 
saisjourn.Show vbModal
 
 
'fin1 = fin1 + 1
'b = 0
'For a = fin1 To fin
 
'    Sheets(nom).Range("b" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(1).Text
'    Sheets(nom).Range("c" & a).Value = saisjourn.infodate.Caption
'    Sheets(nom).Range("d" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(2).Text
'    Sheets(nom).Range("e" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(3).Text
'    Sheets(nom).Range("f" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(4).Text
'    Sheets(nom).Range("g" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(5).Text
'    Sheets(nom).Range("h" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(6).Text
'    Sheets(nom).Range("i" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(7).Text
'    Sheets(nom).Range("k" & a).Value = saisjourn.listsais.ListItems(b).ListSubItems(10).Text
'    b = b + 1
'Next a
 
'If saisjourn.Optoui.Value = True Then
'    For b = 7 To 372
'        dater = Day(Sheets(nom).Range("o" & b).Value) & "-" & Month(Sheets(nom).Range("o" & b).Value) & "-" & Year(Sheets(nom).Range("o" & b).Value)
'        If dater = saisjourn.infodate.Caption = dater Then
'            Sheets(nom).Range("p" & b).Value = "saisi"
'            Exit For
'        End If
'    Next b
'End If
 
 
Unload saisjourn
 
End Sub