Bonjour à tous !
Voilà, je quémande votre aide pour concevoir une macro de traitement des doublons...
J'ai un tableau contenant des données sur des dossiers. Pour info, le tableau a 9 colonnes.
La première colonne (colonne A) comporte un numéro de dossier, c'est en quelque sorte "la clé primaire" du tableau.
Le problème : Il y a beaucoup de doublons dans la colonne A.
Alors bien sûr la solution est de supprimer les doublons (et leur ligne entière associée) par une macro. Jusque là, ça va !
Mais il y a un autre problème, certaines lignes sont moins bien renseignées que d'autres.
Par exemple, certains dossiers/lignes ont 9 colonnes renseignés alors que d'autres dossiers/lignes n'ont que 4 voir 5 colonnes remplies.
Donc voilà, je ne peux pas supprimer les doublons de manière aléatoire, la macro doit garder le doublon le mieux renseigné et supprimer le doublon le moins renseigné.
L'idéale serait bien sûr de concaténer les 2 (ou 3) lignes doublons. Mais la concaténation devrait concerner uniquement les champs vides de la ligne. Ainsi, la ligne résultante serait toujours mieux (ou également) renseignée que la mieux renseignée des 2 lignes doublons. Mais je ne sais pas si c'est possible...
Voici, pour le moment, le résultat de mon jus de cerveau...
OS : Windows Vista
Version Excel : Excel 2007
Effrayant, hin ? Une fois lancée, la macro ne se termine pas !
Dans tous les cas, merci pour vos coups de main
Voilà, je quémande votre aide pour concevoir une macro de traitement des doublons...
J'ai un tableau contenant des données sur des dossiers. Pour info, le tableau a 9 colonnes.
La première colonne (colonne A) comporte un numéro de dossier, c'est en quelque sorte "la clé primaire" du tableau.
Le problème : Il y a beaucoup de doublons dans la colonne A.
Alors bien sûr la solution est de supprimer les doublons (et leur ligne entière associée) par une macro. Jusque là, ça va !
Mais il y a un autre problème, certaines lignes sont moins bien renseignées que d'autres.
Par exemple, certains dossiers/lignes ont 9 colonnes renseignés alors que d'autres dossiers/lignes n'ont que 4 voir 5 colonnes remplies.
Donc voilà, je ne peux pas supprimer les doublons de manière aléatoire, la macro doit garder le doublon le mieux renseigné et supprimer le doublon le moins renseigné.
L'idéale serait bien sûr de concaténer les 2 (ou 3) lignes doublons. Mais la concaténation devrait concerner uniquement les champs vides de la ligne. Ainsi, la ligne résultante serait toujours mieux (ou également) renseignée que la mieux renseignée des 2 lignes doublons. Mais je ne sais pas si c'est possible...
Voici, pour le moment, le résultat de mon jus de cerveau...
OS : Windows Vista
Version Excel : Excel 2007
Code:
Private Sub CommandButton3_Click()
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim derniere_ligne As Integer
Dim compteuri As Integer
Dim compteurj As Integer
derniere_ligne = Range("A65536").End(xlUp).Row
For i = 5 To derniere_ligne 'les premières données se trouvent à la ligne 5
For j = derniere_ligne To 5 Step -1
If Range("B" & i) = Range("B" & j) Then
For m = 1 To 9
If Cells(i, m) <> "" Then
compteuri = compteuri + 1
End If
If Cells(j, m) <> "" Then
compteurj = compteurj + 1
End If
Next
If compteurj > compteuri Then
Rows(i).Delete
Else
Rows(j).Delete
End If
End If
Next
Next
End Sub
Effrayant, hin ? Une fois lancée, la macro ne se termine pas !
Dans tous les cas, merci pour vos coups de main