Microsoft 365 Splitter le contenu de cellules

alexga78

XLDnaute Occasionnel
Bonjour le forum,
j'ai besoin de "splitter" le contenu de cellules sur les lignes suivantes selon un compter, puis "merger" les cellules identiques. Enfin, je souhaite également pouvoir revenir à l'état initial.
J'ai créé 2 macros qui fonctionnent mais comme je suis débutant et que je désire apprendre si quelqu'un peut jeter un coup d'oeil pour améliorer ces codes loin d'être optimisés (notamment l'utilisation des tableaux multiples).


D'avance merci,
 

Pièces jointes

  • Split.xlsm
    26.3 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Alexga,
Sans aller plus profond dans la compréhension de votre code, une optimisation possible est :
Code:
Dim tbl, i
For i = 4 To 7
    tbl = Split(.Cells(R, i).Text, Chr(10))
    .Cells(R, i).Resize(.Cells(R, 3).Value).Value = Application.Transpose(tbl)
Next i
et
Code:
For Each cell In .Range("C2:C" & .Range("A65535").End(xlUp).Row)
    If cell.Value > 1 Then
        Dim temp, i
        For i = 1 To 4
            tbl = cell.Offset(0, i).Resize(cell.Value, 1)
            temp = Application.Transpose(tbl)
        Next i
    End If
Next cell
( J'ai supposé que les Join(temp1, Chr(10)) étaient avec les indices de 1 à 4 et non 1,2,2,2 puisque vos temp2,3,4 ne servent pas ensuite )
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino