Comment empiler plusieurs colonnes en une seule?


2

Exemple de données

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:

  1. Placez les colonnes empilées dans une nouvelle feuille.

  2. 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

J'utiliserais le complément Power Query pour cela, mais il ne peut pas gérer l'exigence n ° 3.
Mike Honey

1
Merci de m'avoir présenté à Power Query. Comme dans mon autre post cela fonctionnera également. Je ne suis pas aussi inquiet à propos de l'exigence n ° 3 car Power Query, j'ai découvert, propose une autre méthode pour accomplir la même chose. Si vous soumettez votre réponse en guise de réponse, je l'accepterai.
daniellopez46

Réponses:


2

J'utiliserais l'add-in de requête de puissance pour ceci, bien qu'il ne puisse pas gérer l'exigence n ° 3. À partir d'Excel 2016, Power Query est intégré au ruban de données dans la section "Obtenir et transformer".

Les étapes que je créerais dans Power Query seraient les suivantes:

Sélectionnez les colonnes Org et Length, puis choisissez "Remove Columns".

Sélectionnez la colonne Catégorie et choisissez "Colonnes non croisées / Autres colonnes non croisées".

Vous pouvez livrer le résultat dans un nouveau tableau Excel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.