XL 2016 RESOLU Comment regrouper plusieurs colonnes en une seule

richard31

XLDnaute Occasionnel
Bonjour à tous et toutes !


je viens vers vous car je n'arrive pas à trouver tout seul.. je désire juste recopier plusieurs colonnes dans une seule sans compter les blancs. Par VBA ou formules. j'avoue mieux maîtriser les formules mais je pense que par VBA c'est plus simple.

En gros je veux copier les contenus des colonnes qui partent de W13 à W500 Y13 à Y500, AA13 à AA500 etc dans la colonne A mais à partir de A13 . Chaque contenu contient parfois des celulles vides qui ne faut pas copier bien sur. Le tout donc à la suite dans la colonne A (à partir de A13) .

je colle bien sur le fichier pour être plus clair ! ;)

merki car je tourne en rond ...
 

Pièces jointes

  • Assembler-Colonnes.xlsx
    60.4 KB · Affichages: 107

djidji59430

XLDnaute Barbatruc
Bonjour,

essaye en a13

=CONCATENER(Tableau10[@CHRONO];Tableau1012[@CHRONO];Tableau101214[@CHRONO];Tableau10121415[@CHRONO];Tableau1012141516[@CHRONO];Tableau101214151617[@CHRONO])
Tu auras toutes tes information "à la suite" - sans espace séparateurs- dans ta cellule.
Et si tu veux des espaces, tu ajoutes " "; après chaque ;


Crdlmt
 

chris

XLDnaute Barbatruc
Bonjour à tous
@richard31
Tu ne sembles pas avoir compris l'utilisation des tableaux structurés qui
  • doivent avec un nom signifiant
  • pas de lignes entièrement vides
C'est faisable aisément, de plusieurs manières, avec PowerQuery intégré à 2016, mais dans l'état actuel du fichier, cela aurait peu de sens...

Il serait bien aussi de connaître le contexte et l'objectif opérationnels...
 

richard31

XLDnaute Occasionnel
je ne veux pas que ce soit dans une cellule mais sur chaque cellules à part de A13 puis A14 etc etc . et pour les vides pas le choix cela résulte des formules la j'ai juste copié le contenu final . et les noms ont étés en fait changés pour anonymiser le fichier ;) En gros obligé de traiter les données comme dans le fichier avec les cellules vides... Mais au final dans la colonne A il ne faut pas de vides.
 

chris

XLDnaute Barbatruc
RE

J'avais bien compris le résultat à obtenir mais si le fichier n'est pas représentatif de la réalisé :
des vides au lieu de formules ne se gérant pas de la même façon dans PowerQuery
de même que la gestion des noms
et la présence ou non d'autres tableaux...,
on risque de tourner en rond...

Si tu parles des noms de tableaux à propos d'"anonymiser le fichier" on les retrouve dans le gestionnaire de noms... où le double nommage parait d'ailleurs inutile ici...
 

richard31

XLDnaute Occasionnel
RE

J'avais bien compris le résultat à obtenir mais si le fichier n'est pas représentatif de la réalisé :
des vides au lieu de formules ne se gérant pas de la même façon dans PowerQuery
de même que la gestion des noms
et la présence ou non d'autres tableaux...,
on risque de tourner en rond...

Si tu parles des noms de tableaux à propos d'"anonymiser le fichier" on les retrouve dans le gestionnaire de noms... où le double nommage parait d'ailleurs inutile ici...
Je n'ai pas powerQuery de dispo dans la version dispo ici :(
sinon si le fichier est représentatif Les titres que ce soit service 1 ou autre ça change rien ;)

D'ailleur ça y est j ai ce qu'il faut en VBA et ça fonctionne parfaitement ! je le laisse pour aider si d autres personnes ont le même besoin . A coller sur la feuille où se trouve les valeurs :

Sub Regroupe()
Dim i%, j%, dl%
dl = 13 '1ère ligne du tableau
Range("A13:A500") = "" 'vide ancienne valeur
For i = 23 To 33 Step 2 'boucle une colonne sur 2
For j = 13 To 500 'boucle ligne
If Cells(j, i).Value <> "" Then 'si la cellule n'est pas vide
Cells(dl, 1).Value = Cells(j, i).Value 'je rempli la colonne A
dl = dl + 1 ' je déclare la Dl avec une ligne de plus
End If
Next j
Next i
End Sub
 

chris

XLDnaute Barbatruc
Re
Je n'ai pas powerQuery de dispo dans la version dispo ici :(
sinon si le fichier est représentatif Les titres que ce soit service 1 ou autre ça change rien ;)
Toutes les versions 2016 ont PowerQuery intégré (c'est fou comme la plupart des utilisateurs ignorent ce qu'Excel leur offre en natif !)

Et si, pour une requête, comme en VBA quand on gère des tableaux structurés correctement, les noms des objets sont importants.

En VBA aussi une cellule contenant une formule n'est pas vide donc pas égale à ""...

A voir donc sur le fichier réel...
 

richard31

XLDnaute Occasionnel
Re

Toutes les versions 2016 ont PowerQuery intégré (c'est fou comme la plupart des utilisateurs ignorent ce qu'Excel leur offre en natif !)

Et si, pour une requête, comme en VBA quand on gère des tableaux structurés correctement, les noms des objets sont importants.

En VBA aussi une cellule contenant une formule n'est pas vide donc pas égale à ""...

A voir donc sur le fichier réel...

Heuu désolé de vous contredire ^^ et bien non cela n'est pas intégré forcément il faut que le complément COM soit présent et activé. Surtout dans les office2016 sociétés ou les compléments sont gérés par les administrateurs. ce qui est notre cas donc non nous ne l'avons pas. Seulement vrais pour package utilisateur privé .

Et le code VB ne prend pas du tout en compte les noms des colonnes ou objets mais les numéros des colonnes, comme dans mon cas : for i de la colonne 23 à 33 avec option une sur deux de 13 à 500, donc fonctionne parfaitement pour n'importe quel utilisateur qui veut lire les colonnes il suffit de changer les nombres.

Enfin voilà quoi ;)
 

chris

XLDnaute Barbatruc
RE

Sur 2016 ce n'est pas un complément ! Ça l'était sur 2010 et 2013 plus sur 2016. J'ai une version pro également !

C'est dans le menu données : on fait du PowerQuery comme Monsieur Jourdain de la prose, sans le savoir...

Je sais qu'en VBA on peut bosser à l'ancienne et ne pas gérer les ListObjects... ce n'est pas forcément le plus optimisé...
 

Discussions similaires