Démultiplication de code

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 26 sept. 2012 à 10:28
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 26 sept. 2012 à 17:36
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
A voir également:

1 réponse

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
26 sept. 2012 à 11:34
Bonjour,

Je regarde le sujet.

A+
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 11:51
Bonjour f89,

Et merci !
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
26 sept. 2012 à 12:17
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!!!!
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 12:32
Dois-je changer toutes les variables? Compte_Semaine ? (Num_Sem) ?
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 12:34
Juste Num_Sem, il me semble ?
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
26 sept. 2012 à 14:16
Re,
Dim Compte_Semaine1(53) As Single
Compte_Semaine1(Num_Sem) = Compte_Semaine1(Num_Sem) + Worksheets("HS").Cells(cel.Row, "C")
0