comment copier/coller les doublons

pouet38

XLDnaute Nouveau
Bonjour,

J'ai une problématique qui m'occupe depuis deux bonnes heures et je n'ai toujours pas trouvé de solution...
La voici : J'ai un fichier ci-joint avec des parrains et en bout de ligne le nom des personnes parrainées (les filleuls), le souci c'est que certain de mes parrains ont parrainé jusqu’à 4 filleuls. je ne sais pas comment supprimer les 3 ligne de doublons (qui fausse mon étude, car la personnes compte pour 4) et mettre sur la même ligne le nom des filleuls à la suite.
J'ai essayé une macro et des formules mais ce fut infructueux.
Qq'un peut m'orienter sur le sujet?

merci
 

Pièces jointes

  • Classeur2.xlsx
    11.9 KB · Affichages: 66
  • Classeur2.xlsx
    11.9 KB · Affichages: 65
  • Classeur2.xlsx
    11.9 KB · Affichages: 72

CyberNeo99

XLDnaute Occasionnel
Re : comment copier/coller les doublons

Bonjour,

Il existe une formule matricielle qui te permet de créer une liste en ordre alphabétique ou non sans doublons....

Est-ce que tu veux ??? Ou alors si tu veux resté dans l'optique d'effacer des lignes ce sera par code VBA assurément....

Neo
 

youky(BJ)

XLDnaute Barbatruc
Re : comment copier/coller les doublons

Bonjour à tous,
Ben une petite macro à mettre dans un module . . .
Bruno
Code:
Sub filleul()
lig = 2: k = 9: deb = 2
tx = Cells(lig, 3) & Cells(lig, 4)
While tx <> ""
lig = lig + 1
If Cells(lig, 3) & Cells(lig, 4) = tx Then
Range(Cells(deb, k), Cells(deb, k + 1)).Value = Range(Cells(lig, 7), Cells(lig, 8)).Value
Rows(lig).Delete
k = k + 2
lig = lig - 1
Else
tx = Cells(lig, 3) & Cells(lig, 4)
deb = lig: k = 9
End If
Wend
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment copier/coller les doublons

Bonjour le fil, bonjour le forum,

Une autre proposition VBA avec le code ci-dessous :

Code:
Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim li As Integer 'déclare la variable li (LIgne)
Dim nb As Byte 'déclare la variable nb (NomBre)


Set o = Sheets("Feuil1") 'définit l'onglet o
dl = o.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = o.Range("A2:A" & dl) 'définit la plage pl
For li = dl To 2 Step -1 'boucle 1 : inversée, de dl à la ligne 2
    nb = CByte(o.Cells(li, 6).Value) 'définit le nombre de filleuls
    If nb > 1 Then 'condition : si nb est supérieur à 1
        o.Range("A1").AutoFilter 'mode filtre automatique
        o.Range("A1").AutoFilter Field:=3, Criteria1:=o.Cells(li, 3) 'filre les noms par rapport au nom de la ligne
        o.Range("A1").AutoFilter Field:=4, Criteria1:=o.Cells(li, 4) 'filre les pénoms par rapport au prénom de la ligne
        For i = nb To 2 Step -1 'boucle 2 : inversée sur les dernière lignes filtrée
            pl.SpecialCells(xlCellTypeVisible)(i).Offset(0, 6).Resize(1, 2).Copy pl.SpecialCells(xlCellTypeVisible)(1).End(xlToRight).Offset(0, 1) 'copy le nom/prénom à la fin de la première ligne visible
            pl.SpecialCells(xlCellTypeVisible)(i).EntireRow.Delete 'supprime la ligne filtrée
            li = li - 1 'redéfinit la variable li
        Next i 'prochaine ligne filtrée de la boucle inversée 2
        o.Range("A1").AutoFilter 'annule le mode filtgre automatique
    End If 'fin de la condition
Next li 'prochaine ligne de la boucle inversée 1
End Sub
Le fichier :
 

Pièces jointes

  • Pouet_v01.xls
    48 KB · Affichages: 50

pouet38

XLDnaute Nouveau
Re : comment copier/coller les doublons

Merci,
Pour vos réponses. je ne suis pas une spécialiste du VBA.. pour le coup quand je vois tte ces lignes de codes je suis qq peu effrayée.
Je vais regardé tt ca dès à présent! ;-)
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 132
dernier inscrit
hedfahmi