Trier sans doublon avec cumul selon condition

Bonjour,

sur une BD de 150 000 lignes en vba comment faire cela : Suppression des doublons d'un Array selon conditions

exemple ci-dessous :

doublon en A

si C présent je conserve C,D mais pas B et E de la même ligne (B et E sont conservés des autres doublons)

avant

..........................Colonne A................Colonne B................Colonne C................Colonne D...............Colonne E

ligne 1...............michel.....................grand..........................____..........................____..........................chien

ligne 2...............michel.....................grand..........................____..........................____..........................chien

ligne 3...............michel.....................petit...........................10..........................10/10/19.....................____

ligne 4...............nathan.....................moyen.......................1............................01/01/20.....................____

après

..........................Colonne A................Colonne B................Colonne C................Colonne D...............Colonne E

ligne 1...............michel.....................grand.........................10..........................10/10/19..........................chien

ligne 2...............nathan.....................moyen.......................1............................01/01/20.....................____

Merci.

Salut bbto,

on peut avoir un fichier à la structure identique au fichier de travail et quelques dizaines de lignes reprenant TOUS les cas rencontrés ?

A+

voici un exemple en pj avec doublon en ligne 3 et 4.

BD initial de 150 000 lignes

8doublon.xlsm (10.41 Ko)

Salut bbto,

déso mais, avec ça, je ne me lance pas!

J'ai demandé quelques dizaines de lignes avec illustration des étapes !!

Dans ton exemple, il n'y a qu'une ligne avec données en [C...I] !!

Sans fichier plus concret, je laisse à un mage!

A+

Bonjour,

les étapes sont celle ci.

les doublons sont en A.

si doublon avec stock 0 conservation de la valeur B du doublon et ajout de C à I.

puis suppression du doublon.

voir ma pj.

Le résultat écraserai la feuille existante si possible.

le principe est peu le même dans ce fichier sauf que l'on n'ajoute qu'une seule colonne.

Merci.

8doublon-1.xlsm (14.83 Ko)

Salut bbto,

finalement, j'avais crié au loup un peu vite... Déso...

Le résultat s'affiche en feuille 'Extract' : vaut mieux essayer avant d'écraser ta BDD originale !

Un double-clic sur la feuille 'Résultat3' démarre la macro.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tTab
'
Cancel = True
On Error Resume Next
Application.ScreenUpdating = False
'
tTab = Range("A1:I" & Range("A" & Rows.Count).End(xlUp).Row).Value
'
For x = 2 To UBound(tTab, 1) - 1
    If tTab(x, 1) = tTab(x + 1, 1) And (tTab(x, 3) = 0 Or tTab(x, 3) = "") Then
        For y = 3 To 9
            If tTab(x, y) = "" Then tTab(x, y) = tTab(x + 1, y)
        Next
        tTab(x + 1, 1) = ""
    End If
Next
With Worksheets("Extract")
    .Cells.Delete
    .Range("A1").Resize(UBound(tTab, 1), 9).Value = tTab
    .Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    .Columns.AutoFit
    .Activate
End With
'
Application.ScreenUpdating = True
On Error GoTo 0
'
End Sub

Après essais concluants, pour le traitement de ta BDD et écrasement de celle-ci, faire les transformations suivantes.

Je te conseille quand même de sauver le fichier traité sous un autre nom : sécurité!

Cells.Delete
Range("A1").Resize(UBound(tTab, 1), 9).Value = tTab
Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

A+

10bbto.xlsm (23.70 Ko)
Rechercher des sujets similaires à "trier doublon cumul condition"