Pb doublon
Bonjour, je suis novice en VBA, et je souhaiterais un peu d'aide pour une macro.
Je voudrais que les doublons soit supprimés selon les noms et les prénoms
Voici, mon code :
Sub DOUBLON()
Set wsi = Worksheets(3)
dli = wsi.Cells(Rows.Count, 9).End(xlUp).Row
Set wso = Worksheets(4)
dlo = 0
rupt = ""
For I = 1 To dli + 1
If wsi.Cells(I, 9) <> rupt Then
If rupt <> "" Then
dlo = dlo + 1
wso.Cells(dlo, 1) = str0
wso.Cells(dlo, 2) = str1
wso.Cells(dlo, 3) = str2
wso.Cells(dlo, 4) = str3
wso.Cells(dlo, 5) = str4
wso.Cells(dlo, 6) = str5
wso.Cells(dlo, 7) = str6
wso.Cells(dlo, 8) = str7
wso.Cells(dlo, 9) = rupt
wso.Cells(dlo, 10) = str9
wso.Cells(dlo, 11) = str10
wso.Cells(dlo, 12) = str11
wso.Cells(dlo, 13) = str12
End If
str0 = wsi.Cells(I, 1)
str1 = wsi.Cells(I, 2)
str2 = wsi.Cells(I, 3)
str3 = wsi.Cells(I, 4)
str4 = wsi.Cells(I, 5)
str5 = wsi.Cells(I, 6)
str6 = wsi.Cells(I, 7)
str7 = wsi.Cells(I, 8)
rupt = wsi.Cells(I, 9)
str9 = wsi.Cells(I, 10)
str10 = wsi.Cells(I, 11)
str11 = wsi.Cells(I, 12)
str12 = wsi.Cells(I, 13)
Else
str0 = str0 & " / " & wsi.Cells(I, 1)
str1 = str1 & " / " & wsi.Cells(I, 2)
str2 = str2 & " / " & wsi.Cells(I, 3)
str5 = str5 & " / " & wsi.Cells(I, 6)
str6 = str6 & " / " & wsi.Cells(I, 7)
End If
Next I
wso.Columns("A:M").AutoFit
wso.Select
End Sub
Les noms étant en colonne 9 et les prénoms colonnes 10
Merci de m'aider !
Cdsj
Il faudrait que la conditions s'applique pour les deux cellules et non uniquement celle des noms!!
merci bcp !
Cdsj
Bonjour,
Une piste avec suppression des lignes en doublon :
Sub Test()
Dim Plage As Range
Dim Cel As Range
Dim Dico As Object
Dim Chaine As String
Dim Tbl() As Long
Dim I As Long
Set Dico = CreateObject("Scripting.Dictionary")
With Worksheets("BDMedical"): Set Plage = .Range(.Cells(2, 9), .Cells(.Rows.Count, 9).End(xlUp)): End With
For Each Cel In Plage
Chaine = Cel.Value & Cel.Offset(, 1).Value
If Dico.exists(Chaine) = False Then
Dico.Add Chaine, ""
Else
I = I + 1
ReDim Preserve Tbl(1 To I)
Tbl(I) = Cel.Row
End If
Next Cel
If Not (Not Tbl()) Then
For I = UBound(Tbl) To 1 Step -1
Rows(Tbl(I)).EntireRow.Delete
Next I
End If
End Sub
Merci de votre réponse!
J'ai du mal avec le code, alors, je prends le temps de l'examiner!
je n'avais pas actualiser ma page...
Je n'y arrive pas !
Je joins mon fichier si vous pouvez y jeter un œil !
J'ai finalement concaténer ces deux cellules pour me permettre de différencier les lignes, mais du coup ça me rajoute une étape supplémentaire en effectuant le tri moi même!
De plus, j'aurais voulu que la fusion des cellules de A à G s'effectue que si le texte est différent!
Par exemple
2 / 4 / 6 / St Martin / saint Martin / Paris
devienne :
2 / 4 / 6 St Martin / Paris
Merci encore !
Re,
Dans ton post originel, tu dis :
Je voudrais que les doublons soit supprimés selon les noms et les prénoms...
Les noms étant en colonne 9 et les prénoms colonnes 10...
Il faudrait que la conditions s'applique pour les deux cellules et non uniquement celle des noms!!
et donc, quel rapport avec ceci ?
De plus, j'aurais voulu que la fusion des cellules de A à G s'effectue que si le texte est différent!
Donc, en attendant des explications claires et concises, j'en reste là !
Ah oui pardon, dsl, je me suis pris la tête tte la journée hier sur ce dossier.
En fait j'aurais souhaiter que :
Dans l'onglet publipostage,
1- la suppression des doublons se base sur la colonne des noms ET des prénoms car, il peut y avoir 2 mêmes noms sans le même prénom. Donc obtenir 1 ligne distincte par nom (d'où le fait que je concatene ces 2 colonnes pour me permettre de bien les différencier!)
2- Les infos correspondantes à chaque nom, doivent se retrouver dans la ligne nouvellement crée par la fusion des doublons séparées par des " / " (L'idéal étant que si l'information est la même, qu'elle ne soit pas doublée, pour évitée la redondance dans la même cellule)
J'espère que je suis plus clair !
merci d'avance,
Cdsj