Mettre un tableau de données dans une seule colonne

Bonjour, j'ai un problème similaire, la macro de Pedro22 (https://forum.excel-pratique.com/astuces/mettre-un-tableau-de-donnees-dans-une-seule-colonne-7677) y répond parfaitement à un détail près c'est que les temps de traitement sont incroyablement longs.

J'ai un fichier :

MatriculeSortiCL18CL01CL03TR20
118Oui100213
45Non150182533

Que je dois transformer en :

MatriculeSortiCode élémentValeur élément
118OuiCL18100
118

Oui

CL012
118OuiCL031
118OuiTR203
45NonCL18150
45NonCL01118
45NonCL0325
45NonTR2033

J'ai un nombre de colonnes et de lignes variables d'un fichier à un autre qui peut aller jusqu'à 500 lignes et 50 colonnes d'où les temps de traitement longs ...

L'ordre des lignes n'a aucune importance.

J'espère avoir été assez précise, par avance merci de votre aide.

Bonjour

@ NathG, vous avez fait cette demande dans les l'espace "Tuto et Astuces" réservé à des astuces ou des Tutos

Il eu été mieux de poster votre demande dans le forum dédié --> https://forum.excel-pratique.com/excel

Voici toutefois une réponse

Sub Transfert() 'sur feuil2
Dim tablo()
Dim dcl As Integer, dlg As Integer, i As Integer, j As Integer

dcl = ActiveSheet.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column

For j = 3 To dcl
    dlg = ActiveSheet.Cells(ActiveSheet.Rows.Count, j).End(xlUp).Row
    ReDim tablo(2 To dlg, 1 To 4)

    For i = 2 To dlg
        tablo(i, 1) = ActiveSheet.Cells(i, 1)
        tablo(i, 2) = ActiveSheet.Cells(i, 2)
        tablo(i, 3) = ActiveSheet.Cells(1, j)
        tablo(i, 4) = ActiveSheet.Cells(i, j)
    Next i

    With ActiveSheet
        lig = .Range("A" & .Rows.Count).End(xlUp).Row + 1
        .Range("A" & lig & ":D" & lig + dlg - 2) = tablo
    End With
Next j

End Sub

Cordialement

Rechercher des sujets similaires à "mettre tableau donnees seule colonne"