Additionner automatiquement des lignes avec des conditions
Bonjour à toute la communauté ! :)
Me voici aujourd'hui confronté à un problème majeur. Mon fichier a eu je ne sais quoi de manipulé mais résultat il y a des doublons. Je m'explique, dans la feuille MIB_AB (c'est là que ça se passe), il y a des lignes correspondant à des prélèvements, bref. Certaines lignes ont les mêmes dates et ce n'est pas normal ! Et l'effectif est donc séparé sur ces 2 ou plus dates similaires. Et plein de lignes ont subi ça : des pseudo-doublons. Et vous vous en doutez, j'aimerais refusionner ces lignes qui ont les mêmes dates mais additionner les valeurs des effectifs des lignes fusionnées. Et j'ai beau cherché me voilà perdu...
Merci d'avance pour votre lecture, et votre aide,
Bonne fin de journée,
Gaëtan
Salut Tanttan,
une façon de faire...
Un double-clic sur la feuille 'TEST' démarre la macro.
ATTENTION : sur cette feuille, j'ai dû corriger un tas de dates "31/0717" en "31/07/17" pour que cela fonctionne => pas de correction en 'MIB_AB' = plantage !!
C'est récurrent ce genre de truc ?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tTab, iIdx1%, iIdx2%
'
Cancel = True
Application.ScreenUpdating = False
'
iIdx1 = 2
tTab = [A1].CurrentRegion.Formula
'
For x = 3 To UBound(tTab, 1)
If CLng(tTab(x, 2)) = CLng(tTab(iIdx1, 2)) And tTab(x, 1) = tTab(iIdx1, 1) And tTab(x, 3) = tTab(iIdx1, 3) Then
iIdx2 = x
Else
If iIdx2 > 0 Then
For y = iIdx1 + 1 To iIdx2
tTab(iIdx1, 5) = CInt(tTab(iIdx1, 5)) + CInt(tTab(y, 5))
tTab(y, 1) = ""
Next
End If
iIdx1 = x
iIdx2 = 0
End If
Next
'
[A1].Resize(UBound(tTab, 1), UBound(tTab, 2)).Formula = tTab
On Error Resume Next
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
On Error GoTo 0
'
Application.ScreenUpdating = True
'
End Sub
A+