Empiler des colonnes les unes au dessous des autres

Bonjour,

Dans une feuille d'un classeur Excel, J'ai plusieurs colonnes avec parfois 365 données et parfois avec 366 (pour les années bissextiles). Je joints ici un exemple avec 22 colonnes.

3222.xlsx (29.82 Ko)

Je voudrais empiler ces colonnes les unes au dessous des autres de façon à obtenir une seule colonne (de 8036 données je crois dans mon exemple joint).

Y aurait il une formule pour l'appliquer quelque soit le nombre de colonnes ? Merci.

essaie ça. Ca devrait marcher

For i = 2 To 100 'Numéro de colonnes
    Do While Sheets("XXX").Cells(j, i).Value <> ""
        j = j + 1
    Loop

    Sheets("XXX").Range(Cells(1, i), Cells(j, i)).Copy
    Sheets("XXX").Range("A" & Rows.Count).End(xlUp).Row.PasteSpecial
Next i

Hello,

Voici le code VBA à lancer ci dessous:

Sub test()
dc = Cells(1, Columns.Count).End(xlToLeft).Column
For y = 1 To dc
Sheets("Feuil1").Activate
dl = Cells(Rows.Count, y).End(xlUp).Row
Range(Cells(1, y), Cells(dl, y)).Copy
Sheets("Feuil2").Activate
dl2 = Cells(Rows.Count, 1).End(xlUp).Row
Range("A" & dl2 + 1).PasteSpecial xlPasteValues
Next
End Sub

Pas mal... Je m'incline

Sinon mon code corrigé :

Sub Bouton1_Cliquer()
j = 1
For i = 2 To 100 'Numéro de colonnes
    Do While Sheets("Feuil1").Cells(j, i).Value <> ""
        j = j + 1
    Loop

    Sheets("Feuil1").Range(Cells(1, i), Cells(j, i)).Copy
    Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).PasteSpecial
Next i

End Sub

Bonjour à tous !

Une proposition, via Power Query (complément à télécharger pour Excel 2010) :

18hydrol-22.xlsx (46.29 Ko)

Bonjour. Merci pour les deux réponses. Je n'ai pas pu exécuter la première (le problème serait de mon coté). pour le second code VBA, c'est presque réussi, sauf que le code empile toujours le même nombre de données (365 à chaque fois), alors qu'il y a des colonnes avec 366 données. Je ne sais pas ou il faut intervenir pour indiquer au code qu'il faut prendre toutes les données qu'ils rencontrent, jusqu'à la dernière (des fois c'est 365 et des fois c'est 366). Je vous remercie.

Sub Bouton1_Cliquer()
j = 1
For i = 2 To 100 'Numéro de colonnes
    j=0
    Do While Sheets("Feuil1").Cells(j, i).Value <> ""
        j = j + 1
    Loop

    Sheets("Feuil1").Range(Cells(1, i), Cells(j, i)).Copy
    Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).PasteSpecial
Next i

End Sub

Essaye peut-être en remettant j=0.

SVP Arthur, ce que vous mettez en couleur verte (numéro de colonnes), j'y mets quelque chose ou je le laisse tel quel ?

Bonjour de nouveau.....

Bonjour. Merci pour les deux réponses.

De la nécessité d'utiliser une version récente d'Excel.
La vôtre ne sait pas même compter au-delà de deux.....

Ne m'en veuillez pas....je suis souvent d'humeur taquine.....

JFL :

SVP Arthur, ce que vous mettez en couleur verte (numéro de colonnes), j'y mets quelque chose ou je le laisse tel quel ?

Tu peux mettre le nombre que tu veux. et même dans le meilleur des cas mettre une variable pour faire en fonction du nombre de colonnes que tu as

Je viens de tester le code que j'ai proposé, tout va bien de mon coté, il prend toutes les valeurs, qu'elles soient 365 ou 366. A voir du votre s'il n'y a pas eu de modifications ou autre ?

Je n'avais pas vu ton code Sothin mais c'est exactement ce dont je parlais. Le même que le mien mais en mieux car changeant en fonction des colonnes.

Je pense que tu peux clore le sujet maintenant.

Rechercher des sujets similaires à "empiler colonnes dessous"