Bonjour àt ous, j'ai un problème sur du code vba je ne sais pas du tout d'où peut venir cette erreur.
Alors en fait j'ai un état principal appelé Etat1. Sur ce cet état, j'ai deux sous-état: Détail_Mois_en_Cours_Pointage_Imputable et Détail_Mois_en_Cours_Pointage_Non_Imputable.
A l'ouverture des sous-états, il y a du code:pour permettre la mise en forme. (Il y a la même chose à peu de chose près pour le sous-état non imputable). Cela marche parfaitement pour les sous-états.
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 Public Sub MajReportImputable() Dim ND As Integer, j As Integer Dim DateJ As Date ND = DaysInMonth(Forms!Frm_Pointage!Mois, Forms!Frm_Pointage!An) DateJ = DateSerial(Forms!Frm_Pointage!An, Forms!Frm_Pointage!Mois, 1) 'Reports!Détail_Mois_en_Cours_Pointage_Imputable!Titre.Caption = "Planning mensuel des heures imputables pour le mois de " & Format(DateJ, "mmmm yyyy") For j = 1 To ND Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & j If EstWeekEnd(DateJ) Or EstFerie(DateJ) Then Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).BackColor = 13428479 Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).BackColor = 13428479 'Reports!Détail_Mois_en_Cours_Pointage_Imputable("Total" & j).BackColor = 13428479 Else Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).BackColor = 16761024 Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).BackColor = vbWhite 'Reports!Détail_Mois_en_Cours_Pointage_Imputable("Total" & j).BackColor = vbWhite End If DateJ = DateJ + 1 Next j For j = 29 To ND Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Visible = True Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).Visible = True Next j For j = (ND + 1) To 31 Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Visible = False Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).Visible = False Next j End Sub
Quand j'ouvre séparement les sous-états la mise en page est la bonne, mais quand j'ouvre l'état principal non, j'ai donc mis du code sur l'ouverture de l'état principal:Le problème se trouve apperement à la ligne 11 le débogueur me dit: erreur 2455: la référence d'une expression à la propriété Form/Report n'est pas valide
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 Public Sub MajReport() Dim ND As Integer, j As Integer Dim DateJ As Date ND = DaysInMonth(Forms!Frm_Pointage!Mois, Forms!Frm_Pointage!An) DateJ = DateSerial(Forms!Frm_Pointage!An, Forms!Frm_Pointage!Mois, 1) Reports!État1!Titre.Caption = "Planning mensuel des heures pour le mois de " & Format(DateJ, "mmmm yyyy") For j = 1 To ND Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & j Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & j If EstWeekEnd(DateJ) Or EstFerie(DateJ) Then Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).BackColor = 13428479 Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).BackColor = 13428479 Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Total" & j).BackColor = 13428479 Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).BackColor = 13428479 Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).BackColor = 13428479 Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Total" & j).BackColor = 13428479 Else Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).BackColor = 16761024 Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).BackColor = vbWhite Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Total" & j).BackColor = vbWhite Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).BackColor = 16761024 Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).BackColor = vbWhite Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Total" & j).BackColor = vbWhite End If DateJ = DateJ + 1 Next j For j = 29 To ND Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Visible = True Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).Visible = True Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Visible = True Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).Visible = True Next j For j = (ND + 1) To 31 Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Visible = False Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).Visible = False Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Visible = False Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).Visible = False Next j End Sub
Partager