Démultiplication de code

Résolu
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

'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

1 réponse

  1. Bonjour,

    Je regarde le sujet.

    A+
    1. Bonjour f89,

      Et merci !
    2. Re,

      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!!!!
    3. Dois-je changer toutes les variables? Compte_Semaine ? (Num_Sem) ?
    4. Juste Num_Sem, il me semble ?
    5. Re,
      Dim Compte_Semaine1(53) As Single
      Compte_Semaine1(Num_Sem) = Compte_Semaine1(Num_Sem) + Worksheets("HS").Cells(cel.Row, "C")