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 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
| Sub creerann()
Load ajout
ajout.titre.Caption = "ENTRER ANNEE AU FORMAT exemple: 2014"
ajout.saisi1.Visible = True
ret:
ajout.Show vbModal
If ajout.annuliste.Caption = "true" Then
Unload ajout
Exit Sub
End If
If ajout.saisi1.Value = "" Or ajout.saisi1.Value < 2000 Or ajout.saisi1.Value > 2100 Then
MsgBox "l'année est incorrecte", vbCritical
GoTo ret
End If
ann = ajout.saisi1.Value
lign = Sheets("param").Range("o6").Value + 8
For a = 8 To lign
If ann = Sheets("param").Range("n" & a).Value Then
MsgBox "l'année a déjà été créée ", vbCritical
GoTo ret
End If
Next a
Sheets("param").Range("n" & lign).Value = ann
'CREATION FEUILLE LISTE TRAVAIL
Sheets("modelistrav").Copy after:=Sheets(7)
nom = "trav" & ann
ActiveSheet.Name = nom
Sheets(nom).Range("c3").Value = ann
Sheets("param").Range("o" & lign).Value = nom
'remplir le tableau des journées saisi
dater = "01-janv-" & ann
anns = ann + 1
For a = 7 To 372
If dater = "01-janv-" & anns Then Exit For
Sheets(nom).Range("o" & a).Value = Format(dater, "dd-mmm-yyyy")
Sheets(nom).Range("p5").Value = Sheets(nom).Range("p5").Value + 1
dater = DateAdd("d", 1, dater)
Next a
'CREATION FEUILLE TOTAL ANNEE
Sheets("modelanntot").Copy after:=Sheets(7)
nom1 = "tot" & ann
ActiveSheet.Name = nom1
Sheets(nom1).Range("c3").Value = ann
Sheets("param").Range("p" & lign).Value = nom1
'CREATION FEUILLE CYCLE SEMAINE
Sheets("modelcyclsem").Copy after:=Sheets(7)
nom2 = "cycl" & ann
ActiveSheet.Name = nom2
Sheets(nom2).Range("c3").Value = ann
Sheets("param").Range("q" & lign).Value = nom2
'complete param
lign = lign - 7
Sheets("param").Range("o6").Value = lign
'form pour régler chaque semaine et son rythme
annp = ann - 1
nom2p = "cycl" & annp
If FeuilleExiste(nom2p) = True Then annprec = True Else annprec = False
ltrav = 7
Load nvelleann
With nvelleann.LISTE.ColumnHeaders
.Clear
.Add , "col1", "nom", 50
.Add , "col2", "prenom", 50
.Add , "col3", "sem46", 10
.Add , "col4", "sem47", 10
.Add , "col5", "sem48", 10
.Add , "col6", "sem49", 10
.Add , "col7", "sem50", 10
.Add , "col8", "sem51", 10
.Add , "col9", "sem52", 10
.Add , "col10", "sem53", 10
.Add , "col11", "sem1", 10
.Add , "col12", "sem2", 10
.Add , "col13", "sem3", 10
.Add , "col14", "sem4", 10
.Add , "col15", "sem5", 10
.Add , "col16", "sem6", 10
.Add , "col17", "sem7", 10
.Add , "col18", "sem8", 10
.Add , "col19", "nombres semaines type", 40
.Add , "col20", "nombre semaines dans 1 cycle", 40
End With
For ltag = 5 To 102
nompre = Sheets("listagent").Range("b" & ltag).Value & " " & Sheets("listagent").Range("c" & ltag).Value
If Sheets("listagent").Range("b" & ltag).Value = "" Then ' lance analyse si nom et prenom présent
Else
Sheets(nom2).Range("b" & ltrav).Value = nompre
Sheets(nom1).Range("b" & ltrav).Value = nompre
If Sheets("listagent").Range("d" & ltag).Value > 1 Then 'si cycle plusieurs semaines
If annprec = True Then 'pour rechercher dans année précédente
For a = 7 To 104 'rechercher l agent dans l'année précédente
If nompre = Sheets(nom2p).Range("b" & a).Value Then 'rempli une ligne de liste lorsque agent trouvé
nvelleann.LISTE.ListItems.Add , a, Sheets(nom2p).Range("b" & a).Value
'saisie année précédente
With nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems
.Add , , Sheets(nom2p).Range("c" & a).Value 'col 1
.Add , , Sheets(nom2p).Range("av" & a).Value 'col 2
.Add , , Sheets(nom2p).Range("aw" & a).Value 'col 3
.Add , , Sheets(nom2p).Range("ax" & a).Value 'col 4
.Add , , Sheets(nom2p).Range("ay" & a).Value 'col 5
.Add , , Sheets(nom2p).Range("az" & a).Value 'col 6
.Add , , Sheets(nom2p).Range("ba" & a).Value 'col 7
.Add , , Sheets(nom2p).Range("bb" & a).Value 'col 8
.Add , , Sheets(nom2p).Range("bc" & a).Value 'col 9
End With
'proposition pour nouvelle année
semfin = Sheets("listagent").Range("e" & ltag).Value
If Weekday("01-janv-" & ann) = 1 Then
If Semaine("31-déc-" & annp) = 53 Then
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , Sheets(nom2p).Range("bc" & a).Value 'col 10
sem = Left(Sheets(nom2p).Range("bc" & a).Value, 1)
Else
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , Sheets(nom2p).Range("bb" & a).Value 'col 10
sem = Left(Sheets(nom2p).Range("bb" & a).Value, 1)
End If
Else
If Semaine("31-déc-" & annp) = 53 Then
sem = Left(Sheets(nom2p).Range("bc" & a).Value, 1)
Else
sem = Left(Sheets(nom2p).Range("bb" & a).Value, 1)
End If
sem = sem + 1
If sem > semfin Then sem = 1
typ = Sheets("listagent").Range(Cells(ltag, sem + 117))
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , sem & "-" & typ 'col 10
End If
For b = 11 To 17 ' Rempli toutes les colonnes de l'année à venir
sem = sem + 1
If sem > semfin Then sem = 1
typ = Sheets("listagent").Range(Cells(ltag, sem + 117))
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , sem & "-" & typ 'col de 11 a 17
Next b
Exit For
End If
Next a
Else 'pas d'année précédente
With nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1)
.ListSubItems.Add , , Sheets("listagent").Range("dn" & ltag).Value 'col 10
.ListSubItems.Add , , Sheets("listagent").Range("do" & ltag).Value 'col 11
.ListSubItems.Add , , Sheets("listagent").Range("dp" & ltag).Value 'col 12
.ListSubItems.Add , , Sheets("listagent").Range("dq" & ltag).Value 'col 13
.ListSubItems.Add , , Sheets("listagent").Range("dr" & ltag).Value 'col 14
.ListSubItems.Add , , Sheets("listagent").Range("ds" & ltag).Value 'col 15
.ListSubItems.Add , , Sheets("listagent").Range("dt" & ltag).Value 'col 16
.ListSubItems.Add , , Sheets("listagent").Range("du" & ltag).Value 'col 17
End With
End If
Else 'si cycle 1 seule semaine
nvelleann.LISTE.ListItems.Add , , Sheets("listagent").Range("b" & ltag).Value
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , Sheets("listagent").Range("c" & ltag).Value 'col 1
For a = 10 To 17
If a > 9 Then
donnee = Sheets("listagent").Range("dn" & ltag).Value
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , donnee 'col 10 a 17
Else
nvelleann.LISTE.ListItems(nvelleann.LISTE.ListItems.Count - 1).ListSubItems.Add , , " " 'col 2 a 9
End If
Next a
End If 'fin choix cycle
ltrav = ltrav + 1
End If 'fin presence nom et prenom
Next ltag
nvelleann.LISTE.View = lvwReport
nvelleann.Show vbModal
b = 0
For a = 7 To 104 'remplir chaque ligne (par agent)
'remplir la feuille total annuel
Sheets(nom1).Range("b" & a).Value = nvelleann.LISTE.ListItems(b).ListSubItems(0).Text & " " & nvelleann.LISTE.ListItems(b).ListSubItems(1).Text
'nombre heure semaine 1
Sheets(nom1).Range("c" & a).Value = nbreheuresem(6, a)
'nombre heure semaine 2
Sheets(nom1).Range("d" & a).Value = nbreheuresem(34, a)
'nombre heure semaine 3
Sheets(nom1).Range("e" & a).Value = nbreheuresem(62, a)
'nombre heure semaine 4
Sheets(nom1).Range("f" & a).Value = nbreheuresem(90, a)
'remplir la feuille cycle
Sheets(nom2).Range("b" & a).Value = nvelleann.LISTE.ListItems(b).ListSubItems(0).Text & " " & nvelleann.LISTE.ListItems(b).ListSubItems(1).Text
d = 0
For c = 3 To 55 'remplir chaque colonne de la ligne
Sheets(nom2).Range(Cells(a, c)).Value = nvelleann.LISTE.ListItems(d).ListSubItems(a).Text
d = d + 1
Next c
b = b + 1
Next a
Unload nvelleann
MsgBox "ANNEE " & ann & " A ETE CREEE", vbInformation
End Sub |
Partager