Transformer 800 colonnes en lignes ?

Bonjour,

Je viens quérir de l'aide car je me trouve confronté à un problème de mise en forme de données

Comme vous pouvez le voir dans le fichier Excel joint, j'ai dans mes lignes des expressions, et dans mes colonnes des villes. Vous le devinez, j'ai grandement modifié le fichier exemple ; j'ai sur mon fichier original environ 1700 lignes (expressions) et 923 colonnes (villes), ce qui rendrait donc le copier/coller manuel un peu fastidieux

J'aimerais simplement tout regrouper sur une seule colonne (qui devrait donc compter environ 1.400.000 lignes) afin d'en permettre l'exportation sur d'autres outils, et j'ai le sentiment qu'une macro serait capable de réaliser ça assez simplement.

Vu que le nombre maximal de lignes est d'environ 1 million, commencer une seconde colonne une fois la limite dépassée ?

J'ai recherché des sujets et solutions similaires, mais je n'ai pas réussi à appliquer les macros que j'ai trouvées du fait de mes connaissances approfondies en la matière...

Merci d'avance,

Reboot

J'y suis finalement arrivé, je poste ici la macro si ça peut servir à d'autres.

Sub Transfert()
Range("A1:A1000000").ClearContents
ligne = 1
For n = 1 To 900
  For m = 1 To Cells(1000000, n).End(xlUp).Row
    If Cells(m, n) <> 0 Then
      Cells(ligne, 1) = Cells(m, n)
      ligne = ligne + 1
    End If
  Next m
Next n
End Sub

Ceci ?

Sub mise_en_colonne()

ligne = 1
colonne = 1

Sheets("Résultat souhaité").Select
With Sheets("Problème actuel")

    For col = 1 To .Range("A1").End(xlToRight).Column
        For lig = 1 To .Range("A1").End(xlDown).Row
            Cells(ligne, colonne) = .Cells(lig, col)
            ligne = ligne + 1
            If ligne > 1000000 Then
                ligne = 1
                colonne = colonne + 1
            End If
        Next lig
    Next col

End With

End Sub

trop tard, je viens de voir ta réponse ...

Steelson a écrit :

Ceci ?

Sub mise_en_colonne()

ligne = 1
colonne = 1

Sheets("Résultat souhaité").Select
With Sheets("Problème actuel")

    For col = 1 To .Range("A1").End(xlToRight).Column
        For lig = 1 To .Range("A1").End(xlDown).Row
            Cells(ligne, colonne) = .Cells(lig, col)
            ligne = ligne + 1
            If ligne > 1000000 Then
                ligne = 1
                colonne = colonne + 1
            End If
        Next lig
    Next col

End With

End Sub

trop tard, je viens de voir ta réponse ...

La tienne à l'air de marcher aussi, je te remercie quand même, en espérant qu'elle serve à ceux qui auront le même problème que moi... Et désolé pour le temps "perdu"

Rechercher des sujets similaires à "transformer 800 colonnes lignes"