Je ne suis pas assez expérimenté avec VBA pour accomplir cela. Comment modifier le VBA ci-dessous pour pouvoir effectuer les opérations suivantes:
Placez les colonnes empilées dans une nouvelle feuille.
Gérer les blancs (le code ci-dessous le fait actuellement)
Le code 3 est exécuté sur la plage actuellement sélectionnée par l'utilisateur. Idéalement, l'utilisateur peut sélectionner des colonnes non contiguës.
Sub MoveAllDataToColumnA()
Dim i As Long, ws As Worksheet, rngCopy As Range, rngEnd As Range
Set ws = ActiveSheet
Do Until ws.Cells(1, 2).Value = ""
Set rngCopy = ws.Range("B2", ws.Cells(ws.Rows.Count, "B").End(xlUp))
Set rngEnd = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0)
rngEnd.Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
rngCopy.EntireColumn.Delete
Loop
End Sub