Démultiplication de code
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
Co_nexion Messages postés 333 Statut Membre -
Co_nexion Messages postés 333 Statut Membre -
Bonjour,
J'ai souhaité agrémenté ce code pour qu'il remplisse le même tableau mais une ligne au-dessus. Juste au niveau hebdo et non au niveau mensuel.
J'ai modifié les informations qui m'ont paru nécessaire pour faire fonctionner ce code.
Il fonctionne mais le problème est que les informations sont les mêmes. Et je ne vois pas d'où le problème peut venir.
J'espère que sans le fichier vous pourrez m'aider. En gras ce que j'ai rajouté au code d'origine.
Merci d'avance à tous
J'ai souhaité agrémenté ce code pour qu'il remplisse le même tableau mais une ligne au-dessus. Juste au niveau hebdo et non au niveau mensuel.
J'ai modifié les informations qui m'ont paru nécessaire pour faire fonctionner ce code.
Il fonctionne mais le problème est que les informations sont les mêmes. Et je ne vois pas d'où le problème peut venir.
J'espère que sans le fichier vous pourrez m'aider. En gras ce que j'ai rajouté au code d'origine.
Merci d'avance à tous
'Mettre à jour les Heures sup mensuelles puis hebdo
Sub synthese()
Dim Plage As Range, cel As Range
Dim Compte_Semaine(53) As Single, Compte_Mois(12) As Single
Dim Num_Mois As Integer, Num_Sem As Integer, mois
Dim Nb_Sem As Integer
Erase Compte_Semaine, Compte_Mois
'pour la dernière ligne de la colonne A
Derlig = Worksheets("HS").Range("A" & Rows.Count).End(xlUp).Row
Set Plage = Worksheets("HS").Range("O2:O" & Derlig)
For Each cel In Plage
If Worksheets("HS").Cells(cel.Row, "P") <> "" Then
'Mois
ValO = Worksheets("HS").Cells(cel.Row, "O")
mois = Left(ValO, Len(ValO) - 5)
'Semaine
ValP = Worksheets("HS").Cells(cel.Row, "P")
Num_Sem = CInt(Left(ValP, Len(ValP) - 5))
Else
Exit Sub
End If
Select Case mois
Case Is = "janv."
Num_Mois = 1
Case Is = "fév."
Num_Mois = 2
Case Is = "mars"
Num_Mois = 3
Case Is = "avril"
Num_Mois = 4
Case Is = "mai"
Num_Mois = 5
Case Is = "juin"
Num_Mois = 6
Case Is = "juil."
Num_Mois = 7
Case Is = "août"
Num_Mois = 8
Case Is = "sept."
Num_Mois = 9
Case Is = "oct."
Num_Mois = 10
Case Is = "nov."
Num_Mois = 11
Case Is = "déc."
Num_Mois = 12
Case Else
'cellule vide ou autre
End Select
'EAM
Compte_Semaine(Num_Sem) = Compte_Semaine(Num_Sem) + Worksheets("HS").Cells(cel.Row, "E")
Compte_Mois(Num_Mois) = Compte_Mois(Num_Mois) + Worksheets("HS").Cells(cel.Row, "E")
'Duplication 25/09
'Heures
Compte_Semaine(Num_Sem) = Compte_Semaine(Num_Sem) + Worksheets("HS").Cells(cel.Row, "C")
Next cel
'Ecriture des Cumuls EAM
'Cumul Mois EAM
For i = 1 To 12
If Compte_Mois(i) > 0 Then
Worksheets("Synthèse").Cells(33, 1 + i) = CSng(Format(Compte_Mois(i), "###.##"))
Else
Worksheets("Synthèse").Cells(33, 1 + i) = ""
End If
Next i
'Cumul Semaine EAM
If Worksheets("Synthèse").Range("F20") = "" Then
Nb_Sem = 52
Else
Nb_Sem = 53
End If
'Coordonnees des cellules Semaine EAM
For i = 1 To 52
lig = Choose(i, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, _
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, _
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, _
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, _
22, 22, 22, 22)
col = Choose(i, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6)
If Compte_Semaine(i) > 0 Then
Worksheets("Synthèse").Cells(lig, col) = CSng(Format(Compte_Semaine(i), "###.##"))
Else
Worksheets("Synthèse").Cells(lig, col) = ""
End If
Next i
'Duplication 25/09
'Ecriture des Cumuls Heures
'Cumul Semaine Heures
If Worksheets("Synthèse").Range("F20") = "" Then
Nb_Sem = 52
Else
Nb_Sem = 53
End If
'Coordonnees des cellules Semaine Heures
For j = 1 To 52
lig = Choose(j, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, _
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, _
21, 21, 21, 21)
col = Choose(j, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6)
If Compte_Semaine(j) > 0 Then
Worksheets("Synthèse").Cells(lig, col) = CSng(Format(Compte_Semaine(j), "###.##"))
Else
Worksheets("Synthèse").Cells(lig, col) = ""
End If
Next j
End Sub
A voir également:
- Démultiplication de code
- Code ascii - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
Et merci !
Compte_Semaine(Num_Sem) = Compte_Semaine(Num_Sem) + Worksheets("HS").Cells(cel.Row, "E")
et un peu en dessous:
Compte_Semaine(Num_Sem) = Compte_Semaine(Num_Sem) + Worksheets("HS").Cells(cel.Row, "C")
Il est sur qu'a la fin c'est la meme chose. Il faut utiliser une autre variable pour la deuxieme ligne!!!!
Dim Compte_Semaine1(53) As Single
Compte_Semaine1(Num_Sem) = Compte_Semaine1(Num_Sem) + Worksheets("HS").Cells(cel.Row, "C")