comment copier/coller les doublons

  • Initiateur de la discussion Initiateur de la discussion pouet38
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
619
Retour