Bonjour
essayez avec ce code
Sub test()
Dim i As Integer, lig As Integer
Dim col As Byte
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row 'on boucle depuis ligne 4 jusque dernière ligne colonneA
With Sheets("recap") 'feuille recap
dlg = .Range("A" & Rows.Count).End(xlUp).Row 'on repere la dernière ligne de la colonne A
On Error Resume Next 'gestion d'erreur si variable lig ou col ne sont pas trouvée
lig = WorksheetFunction.Match(Range("A" & i), .Range("A:A"), 0) 'recherche de la cellule A ligne i dans la colonne A de la feuille recap
col = WorksheetFunction.Match(Range("C" & i), .Rows(1), 0)'recherche de la cellule C ligne i dans la ligne 1 de la feuille recap
If lig = 0 Then 'condition lig = 0 (ligne non trouvée en feuille recap)
dlg = dlg + 1 'on incrémente dlg de 1
.Range("A" & dlg) = Range("A" & i) 'ajout valeur cellule A ligne i dans la colonne A ligne dlg de la feuille recap
.Range("B" & dlg) = Format(Range("B" & i), "hh:mm")'ajout valeur cellule B ligne i dans la colonne B ligne dlg de la feuille recap
.Cells(dlg, col) = Range("D" & i)'ajout valeur cellule D ligne i dans la cellule dlg - col de la feuille recap
Else: 'cas si lig > 0
.Cells(lig, col) = Range("D" & i) + .Cells(lig, col) 'addition de valeur cellule D à la valeur existante en cellule feuille recap
lig = 0 'remise variable lig à 0
End If
End With
Next i
End Sub
Code à associer à un bouton.
Attention que :
- vous avez un objet en haut à gauche que vous devriez supprimer
- certaines commandes ont un point derrière le numéro
si ok -->
Cordialement
Edit : oups Bruno... Désolé