Sub report()
' récupération dernier membre effectif
Dim nbEffectif As Long
nbEffectif = Sheet2.Range("A1048576").End(xlUp).Row 'dernière ligne remplie
' récupération dernire colonne Histo compteur individuel
Dim nbColonnes As Long
nbColonnes = Sheet2.Range("XFD4").End(xlToLeft).Column 'dernière colonne
' récupération derniere date (colonne F)
Dim nbDates As Long
nbDates = Sheet2.Range("F1048576").End(xlUp).Row 'dernière ligne remplie
Dim plageHistoCompteur As Range
Dim plageDates As Range
' plage histo compteur individuel : G3 à CX3 dans le cas present
' ('nbColonnes + 4' car un nom correspond à 4 cellules fusionnees RDV/GRIP/OK/KO)
Set plageHistoCompteur = Sheet2.Range(Cells(3, 3), Cells(4, nbColonnes))
' plage des dates : F5 à F28 dans le cas present
Set plageDates = Sheet2.Range("F5:F" & nbDates)
Dim celNom As Range
Dim nom As String
Dim celDate As Range
Dim trig As Integer, ColNom As Long
' boucle sur chaque membre effectif
For x = 5 To nbEffectif
For Each celDate In plageDates ' verification date correspond à la date du jour sinon on fait rien
If celDate.Value = Date Then
' si on est ici c'est qu'on est dans la ligne de la date du jour
' on cherche dans la plage du histo compteur la cellule qui correspond au nom du membre
' exemple : on cherche la valeur de A5 on la trouve dans G3, on chercher la valeur de A6 on la trouve dans K3
nom = Sheet2.Cells(x, 1).Value
' Set celNom = plageHistoCompteur.Find(Replace(nom, "...", ""), LookIn:=xlValues, lookat:=xlPart)
For Each celNom In plageHistoCompteur
If celNom Like nom & "*" Then ColNom = celNom.Column: Exit For
Next
' on copie dans la cellule à l'intersection :
' - de la ligne date du jour
' - de la colonne de la cellule (où on a trouvé le nom) en modulo 3 puisqu'un nom est écrit sur 4 cellules
' la valeur de la cellule en Bx, Cx, Dx, Ex...
If ColNom > 0 Then
For trig = 2 To 5
Sheet2.Cells(celDate.Row, ColNom + trig - 2).Value = Sheet2.Cells(x, trig).Value
Next trig
ColNom = 0
End If
End If
Next celDate
Next x
End Sub