Manipulation de données

Bonjour à tous,

Dans le tableau ci-joint, j'aimerais pouvoir trouver un moyen rapide de déplacer toutes les cellules non vides des colonnes [I:R], les unes à la suite des autres dans les colonnes [A:H] avec un déplacement final similaire à celui des pièces dans Tétris mais sur un axe horizontal, de droite vers la gauche.

Afin d'étayer mes propos, les cellules non vides des 20 premières lignes du tableau ont été déplacé dans cet optique mais manuellement.

Collage spécial? Power Query? J'avoue ne pas avoir trouvé la solution.

Une fois de plus, je vous remercie pour votre aide.

Bon dimanche à tous

Bonjour à tous,

Je ne suis pas specialiste de PQ, mais on y arrive .....

Bonjour DjiDji,

Merci beaucoup pour ta réponse!

Par contre, je pense que je n'ai pas été assez explicite dans mon précédent message.

Je voudrais déplacer toutes les cellules non vides vers la gauche, en ne les fusionnant pas entre elles, mais en les plaçant les unes à la suite des autres.

Ex: ___________________ z___b_a____h___f____ où z, b, a, h et f correspondent respectivement aux cellules non vides et "_" matérialisant la séparation de 2 cellules.

=> z_b_a_h_f______________________________

Merci par avance

Problème résolu! C'est moi qui est mal compris ce que tu avais fait !

En gros, en passant par Power Query, on fusionne les colonnes, on fractionne ensuite la colonne fusionnée avec comme délimiteur un espace et le tour est joué!

Pensez-vous qu'il existe une autre solution que celle qui consiste à passer par Power Query?

Bonjour tout le monde. Une proposition en VBA. Un bouton pour lancer la macro en haut au centre.

Merci bcp Optimix !

Pensez-vous qu'il existe une autre solution que celle qui consiste à passer par Power Query?

On peut faire a la main ce que fait PQ.

tu selectionnes toute ta plage, puis remplacer

A rechercher tu ne mets rien et a remplacer un espace (3298 espace !)

puis en colonne t

=supprespace(concat(a2:r2)

tu copies/colles les valeurs sur la colonne T puis meme peine ! convertir etc ....

Crdlmt

OU bien mettre une formule matricielle

=SI(NB.SI($A2:$R2;"<> ")>=COLONNES($A:A);INDEX($A2:$R2;PETITE.VALEUR(SI(($A2:$R2)<>" ";COLONNE($A2:$R2));COLONNES($A:A)));"")

Rechercher des sujets similaires à "manipulation donnees"