XL 2013 Empiler plusieurs colonnes dans une seule

Bergamote33127

XLDnaute Nouveau
Bonjour,

Je cherche désespérément une solution pour passer d'une colonne dont les cellules contiennent des codes séparés par des ";" (nombre de codes inconnu) à une nouvelle colonne contenant tous les codes. J'ai trouvé comment "dé-fusionner" les codes de chaque cellule sur plusieurs colonnes (nombre de colonne inconnu, mais inférieur à 25), avec "Convertir" dans l'onglet "Outils de données", mais ensuite je ne sais pas comment empiler toutes mes colonnes les une au dessus des autres.

Le contexte : Fichier de corrections issus d'Access, avec 1 seule colonne. Dans chaque cellule il y a les codes des corrections apportées (multiples corrections possibles, en nombre et en type). Chaque cellule correspond à une "action de correction". Mon objectif est de calculer la fréquence de chaque type correction apportée, pour ensuite les classer des plus aux moins fréquentes.

De façon plus synthétique :
Colonne de départ :
Cell1 : a;b;u;
Cell2 : e;g
Cell3 : b;u;e

Colonne d'arrivée :
Cell1 : a
Cell2 : b
Cell3 : u
Cell4 : e
Cell5 : g
Cell6 : b
Cell7 : u
Cell8 : e

Un grand merci par avance pour votre aide !
(je ne connais mal le VBA, mais j'arrive à utiliser l'enregistreur de macros pour programmer des boutons d'exécution)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Bergamotte33127

Bergamotte33127
Essaie cette petite macro de test (sur une feuille vide)
Tu lances la macro nommée PourTest
VB:
Sub PourTest()
Columns(1).Clear
[A1] = "a;b;c;d"
[A2] = "e;f;g;h;i"
[A3] = "j;k;l;m;n;o"
MsgBox "Procéder à l'empilement...", vbQuestion, "Test"
Empiler
End Sub
Sub Empiler()
Dim vArr, strVal$, vOut, i&
vArr = Range("A1:A3")
strVal = Join(Application.Transpose(vArr), ";")
vOut = Split(strVal, ";")
Cells(1).Resize(UBound(vOut) + 1) = Application.Transpose(vOut)
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 069
dernier inscrit
jujulop