Detriplement (Dedoublement mais 3 fois) d'une liste

polparis

XLDnaute Nouveau
Bonjour a tous,
J'ai une question a priori toute simple, mais que je ne vois pas comment faire avec des fonctions.
J'ai une liste ABCD... je veux la transformer en AAABBBCCCDDD (voir feuille d'exemple jointe).
Pour l'exemple j'ai tout fait a la main, mais dans mon application reelle, ma liste est trop longue pour que ce soit raisonnablement faisable.
Je ne maitrise pas encore trop les macros donc si il y a une solution avec des formules je suis preneur, sinon si ya pas le choix, je serai deja tres heureux de pouvoir "detripler" ma liste.
Merci d'avance,

Paul
 

Pièces jointes

  • Liste Triple.xlsx
    8.9 KB · Affichages: 36

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Detriplement (Dedoublement mais 3 fois) d'une liste

Bonsoir polparis,

Pour le fun, avec une formule. Mettre la formule suivante en E1 puis tirer la formule jusqu'à voir apparaître des cellules vides.
Copier la colonne E et faire un coller spécial par valeur sur elle-même.

Code:
=SI(LIGNE()<=3*NBVAL($A$1:$A$8);INDEX($A$1:$A$8;1+(LIGNE()-1)/3);"")
 

Pièces jointes

  • Liste Triple v1.xlsx
    9.4 KB · Affichages: 28

Chris401

XLDnaute Accro
Re : Detriplement (Dedoublement mais 3 fois) d'une liste

Bonsoir

Avec une macro :

Code:
Sub Duplique()
Dim i As Integer, j As Integer, Lg As Integer
Range("E:E").ClearContents
 Lg = 1
    For i = 1 To Range("A65536").End(xlUp).Row
        For j = 1 To 3 'Copie 3 fois chaque mot
            Cells(i, 1).Copy Range("E" & Lg)
 Lg = Lg + 1
        Next j
    Next i
End Sub

Cordialement
Chris
 

Pièces jointes

  • Copie de Liste Triple.xlsm
    19.4 KB · Affichages: 33

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Detriplement (Dedoublement mais 3 fois) d'une liste

(re),

En VBA:
VB:
Sub Tripler()
Dim Tablo, res(), i&, j&
  With Sheets("Hoja1")
    .Range("E:E").ClearContents
    Tablo = .Range(.Range("a1"), .Range("a" & Rows.Count).End(xlUp)).Value
    ReDim res(1 To 3 * UBound(Tablo))
    For i = 1 To UBound(Tablo)
      For j = 1 + 3 * (i - 1) To 3 * i
        res(j) = Tablo(i, 1)
      Next j
    Next i
    .Range("e1").Resize(3 * UBound(Tablo)).Value = Application.Transpose(res)
  End With
End Sub
 

Pièces jointes

  • Liste Triple v1.xlsm
    17.8 KB · Affichages: 25

polparis

XLDnaute Nouveau
Re : Detriplement (Dedoublement mais 3 fois) d'une liste

Wow, ca c'est de la rapidite;)
Merci a vous tous pour vos diverses solutions, je vais utiliser la version avec formule dans límmediat mais je garde le vba pour apprendre petit a petit.
Bonne soiree a tous et encore un grand merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 815
Membres
104 673
dernier inscrit
lautard