Regrouper plusieurs colonnes en une seule

Bonjour,

Apres des tests VBA non concluants je voudrais mettre plusieurs colonnes dans la colonne A. (Si possible dans l'ordre ou sont les données dans les colonnes) Quelqu'un pourrait m'aider s'il vous plait ?

Un grand merci d'avance si vous m'aidez !

Fichier à l'appui...

22tarif-ventes.xlsx (14.00 Ko)

Code proposé sur un autre sujet similaire:

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

Merci beaucoup Sothin je vais essayer ca !

Bonjour à tous,

Une variante....à tester....

Option Explicit

Option Explicit
Option Base 1

Sub tb_1colonne()
Dim lig&, col%, index&, dc%
Dim Tb, TbR()

  With Sheets("Feuil1") '........................................agit sur Feuil1
    .Columns(1).ClearContents '..................................efface colonne A
     dc = .UsedRange.Columns.Count '.............................définit nombre de colonnes
     Tb = .Range("B3").CurrentRegion '...........................définit tableau de données Tb
      ReDim TbR(UBound(Tb) * dc) '...............................dimensionne le tableau temporaire TbR
       index = 1

        For col = 1 To dc - 1 '...................................boucle de la 1ère à la dernière colonne du tableau Tb
         For lig = 1 To UBound(Tb) '..............................boucle de la 1ère à la dernière ligne du tableau TB
          If Tb(lig, col) <> "" Then '............................si la cellule est remplie
            TbR(index) = Tb(lig, col) '...........................on stocke la valeur dans TbR
            index = index + 1
          End If
         Next lig
        Next col
    '.Cells.ClearContents '........................................efface toutes les données de Feuil1
    .Range("A3:A" & UBound(TbR)) = Application.Transpose(TbR) '...écrit les données de TbR à partir de A3
  End With
End Sub

CTRL + e pour exécuter la macro


Cordialement,

Bonjour !

Merci beaucoup pour votre aide xorsankukai. On est d'accord que peu importe le nombre de colonne qu'il y a rassembler cela va fonctionner comme la macro effectue un tableau temporaire via nbre de colonnes x nbre de lignes ?

Bonjour à tous,

Merci pour le retour,

On est d'accord que peu importe le nombre de colonne qu'il y a rassembler cela va fonctionner comme la macro effectue un tableau temporaire via nbre de colonnes x nbre de lignes ?

Effectivement, peu importe le nombre de lignes où de colonnes , la macro devrait faire le job

Attention toutefois, pas de colonne vide, sinon il faudra définir Tb autrement (ici : Tb=.range("B3").CurrentRegion).

Cordialement,

Effectivement le currentRegion requiert des données dans chaque cellule, je voulais faire le test avec des colonnes vides mais je me suis dit qu'avec le currentRegion ca ne marcherait pas alors j'ai changé !

Merci

Re,

je voulais faire le test avec des colonnes vides mais je me suis dit qu'avec le currentRegion ca ne marcherait pas alors j'ai changé !

Tb = .Range(.Cells(3, 2), .Cells(.UsedRange.Rows.Count + 2, dc)) '...définit tableau de données Tb (de B3 à dernière cellule de la dernière colonne)
15garris-v2.xlsm (23.46 Ko)

Bonne continuation,

Rechercher des sujets similaires à "regrouper colonnes seule"