Fusion du contenu de plusieurs cellules en VBA

Bonjour à toutes et tous,

Je fais appel à vos services car je dois réaliser une fusion du contenu de plusieurs cellules et pour être franc, je ne vois pas par où commencer.

L'idée est de fusionner le contenu des cellules de la colonne "Texte" en fonction des numéros et lignes de commande.

Dans l'exemple ci-dessous, la ligne 1 de la commande 22300950 possède 3 lignes alors que la ligne 2 n'en possède qu'une seule.

Il faudrait donc fusionner le contenu des cellules "texte" des 3 lignes 1 de la commande 22300950 pour n'en faire qu'une seule (B C D).

Par contre, pas de fusion pour la ligne 2 car il n'y a qu'une seule ligne (E).

Je vous avoue que le canevas est un peu particulier et loin d'être pratique mais les données sources proviennent directement en brut d'une requête d'un ERP (UBW pour ceux qui connaissent) et il n'est malheureusement pas possible d'effectuer des manipulations de données avant l'exportation du fichier en Excel.

Au lieu de copier directement le résultat dans la feuille "CIBLE", serait-il possible d'utiliser une variable tableau ? Celle-ci pourrait éventuellement être transposée dans la feuille CIBLE.

Je mets le fichier en pièce jointe.

Merci pour aide :)

Vincent

image
8fusion.xlsm (10.70 Ko)

Hello,

T’es bien en version 2010 ?

Parce que avec PowerQuery cest hyper facilement faisable mais ce n’est pas dispo dans ta version il faudrait l’installer.

@+

Bonjour Baroute78,

Pour info, je tourne sous Excel 2016 en 64bits.

J'ai déjà entendu parler de PowerQuery mais je ne l'ai jamais utilisé

Pourrais-tu m'expliquer par ou commencer ?

Je t'en remercie d'avance,

Vincent

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

4fusion-v1.xlsm (21.88 Ko)

Bye !

Bonjour,
Une proposition Power query et une mise à jour VBA.
Cdlt.

4fusion.xlsm (25.20 Ko)

Hello Vincent,Gmb, Jean-Eric,

"J'ai déjà entendu parler de PowerQuery mais je ne l'ai jamais utilisé

Pourrais-tu m'expliquer par ou commencer ?"

Il y a une multitude de sujets traitant de PowerQuery. C'est très très vaste mais il n'y a pas de meilleure méthode que de s'y mettre.

Dans l'éditeur PowerQuery, tu verras un ruban avec pleins de fonctionnalités. Tu peux faire pleins de retraitements assez rapidement. Je t'invite à commencer par ça et savoir un petit peu ce que fait chaque action. Puis de te documenter avec Youtube, le forum, etc.

Pour ma part, ce qui me permet de progresser et de découvrir en permanence c'est ce forum, il n'y a pas mieux si tu veux apprendre vite et bien

@+

Merci à Baroute78, à GMB et à Jean-Eric pour vos propositions

Powerquery est apparemment un outil très puissant que j'ai hâte de découvrir. Merci !

@GMB : Ta proposition fonctionne bien mais serait-il possible :

1) d'insérer un espace entre chaque fusion de texte (BCD -> B C D) ?

2) de trier numériquement le résultat par commande puis numéro de ligne ?

En te remerciant d'avance

Re,
Je persévère !...
Cdlt.

1fusion-v2.xlsm (26.16 Ko)
let
    Source = t_data,
    GroupData = Table.Group( 
        Source, 
        {"Année", "N° Commande", "N° Ligne", "Foournisseur"}, 
        {
            {"Texte", each Text.Combine(List.Distinct( _[Texte])," ")},
            {"Qté Commandée", each List.Single(List.FirstN( _[Qté Commandée],1))}
        }
    ),
    SortData = Table.Sort(GroupData,{{"N° Commande", Order.Ascending}, {"N° Ligne", Order.Ascending}})
in
    SortData
Option Explicit

Private Sub Worksheet_Activate()
    Me.ListObjects("pq_result").QueryTable.Refresh
End Sub

Bonjour à tous

Nouvelle version

2fusion-v2.xlsm (22.70 Ko)

Bye !

Rechercher des sujets similaires à "fusion contenu vba"