Propager des valeurs selon une chaîne de caractères

Bonjour le forum,
Je vous soumets un petit problème car je ne sais pas comment le résoudre.
J'aimerai à l'aide d'une macro pouvoir remplir les cellules de la colonne B du Tableau1 avec les codes de la colonne D en fonction des IDs de la colonne E.

Merci d'avance pour votre aide

excel chaine

Hello,

Gérer des correspondances avec des chaînes de texte c'est pas fou je pense. Peux tu organiser tes données comme en PJ et ensuite tu as une simple recherchev à faire ?

Bien à toi

Bonjour,

Un test via POWER QUERY. Par contre comment gères-tu les doublons d'ID, par exemple 38 ? Je suis parti dans l'optique de dédoubler la ligne pour avoir les 2 codes.

Cdlt,

En fait, je vais recevoir les données comme dans le Tableau orange.
Et je vais devoir les traiter pour remplir la colonne B mon Tableau Bleu.
Bien entendu c'est un petit exemple, car dans la réalité je vais avoir bien plus de données que cela à traiter.

En tout cas merci beaucoup de te pencher sur mon problème

Bonjour Ergotamine,
Effectivement c'est une boulette, il ne devrait pas y avoir de doublon d'ID

Bonjour,

Via POWER QUERY vous n'avez qu'a cliquer droit sur une des cellules du tableau vert puis actualiser et tout se fait automatiquement sans passer par du VBA, quelque soit la longueur de vos tableaux.

Il y a peut être plus propre mais je suis en cours de formation sur cet outil. Ca me semble être un bon compromis pour votre besoin.

Cdlt,

Bonjour à tous,

Voici une alternative par macro (pour défendre un peu VBA^^ ) avec les tableaux structurés renommés "Liste" et "Res" :

Sub Codes()
Set dico = CreateObject("Scripting.dictionary")
With Range("Liste")
    For i = 1 To .Rows.Count
        temp = Split(.Cells(i, 2).Value, ";")
        For j = LBound(temp) To UBound(temp)
            dico(temp(j)) = .Cells(i, 1).Value
        Next j
    Next i
End With
With Range("Res")
    ReDim t(1 To .Rows.Count, 1 To 1)
    For i = 1 To .Rows.Count
        t(i, 1) = dico("" & .Cells(i, 1).Value)
    Next i
    .Columns(2).Value = t
End With
End Sub

@Ergotamine : Tu es vraiment passé dans le camp PowerQuery !!!

Cdlt,

Bonjour 3GB,

Je ne suis passé par aucun camp, je les test tous sans vraiment les maîtriser comme tu le fais

Non blague à part, j'aime bien le VBA, mais ce n'est pas forcément transparent pour moi, savoir qu'est ce qui est la propriété de quel objet, quelle est la valeur attendue, surtout avec cet objet Worksheet qui me masque totalement l'intelisense je suis perdu. Est ce n'est pas l'explorateur d'objet qui va m'aider car je n'arrive pas à le maîtriser du tout, je pensais qu'il serait une bibliothèque inselisense bis ..

Je dois manquer quelque chose pour vraiment y prendre un réel plaisir, mais je n'arrive pas à identifier quoi .. Retenir toutes ces propriétés me semble ... Complexe. Encore plus lorsque tu travailles en array et dico sans vraiment voir ce qu'il contient comme tu le fais si bien (bon il y a bien l'explorateur de variables, mais là encore, je ne dois pas m'en servir correctement).

Cdlt,

Merci beaucoup 3GB,
n'étant pas encore PowerQuerisé , c'est exactement la solution en VBA que je cherchais.

Ceci étant dit, pour m'endormir mon bête, j'aimerai bien comprendre la marche à suivre en Power Query.

Bonjour,

Il y a une première requête pour délimiter les codes via le ";" puis ensuite je dépivote les colonnes afin de se retrouver dans une configuration où un ID = un code. Le résultat de cette requête n'est pas chargé mais uniquement connecté. Ensuite une seconde requête vient faire un jointure avec cette table de correspondance, sur laquelle je ne conserve que les codes. Pour finir je charge cette table sur la feuille pour obtenir le résultat final.

Jean-Eric aurait surement eu plus optimisé (s'il passe par là je suis curieux) mais c'est là où mes maigres connaissances s'arrêtent.

Cdlt,

Non mais tu as raison, j'ai l'impression que ça permet d'arriver aux mêmes résultats alors il n'y a pas de jugement de valeur à faire (c'était pour taquiner en fait).

Oui, c'est pas facile VBA au début (quoiqu'on bénéficie un peu de l'enregistreur) mais le réel plaisir est la finalité de toute façon, le fait d'avoir le résultat attendu, si possible de façon dynamique.

Et malheureusement, non, je ne teste pas tout... J'ai juste fait un essai sur PQ mais ça ne m'a pas transcendé. Mais comme VBA, j'imagine qu'il faut se faire violence et supporter la prise en main avant de savourer grâce aux automatismes...

Edit : De rien RSone !

Oui oui ne t'inquiètes pas je ne l'ai pas mal pris bien au contraire

En fait ce qui est le plus frustrant en VBA pour moi est l'absence de connaissance sur les relations entre objet et propriété .. Je n'y arrive pas. Ensuite il y a tellement de propriétés et méthodes diverses qu'il en devient difficile de savoir quoi va avec quoi et agit sur quoi, donc il faut souvent que j'aille chercher à droite à gauche .. Ce qui est frustrant car j'aime l'autonomie et faire par moi même .. Avoir l'idée de la construction sans me faire assister ..

En soit le résultat est satisfaisant certe, mais le développement est plus épanouissant. Reste à savoir dans quel sens manipuler l'outil.

Cdlt,

Oui je comprends bien. Avec PowerQuery, les actions sont menées intuitivement c'est ça ? C'est la logique pure qui s'exprime directement au moyen de l'interface.

Alors qu'avec VBA, il faut rajouter la langue, la syntaxe, ... Et c'est un obstacle de taille.

Mais c'est comme tout, au début, on ne sait pas et à force de chercher ou de voir les mêmes propriétés et méthodes, on les retient puis les connait. L'avantage, c'est qu'en plus, tu connais bien Excel donc ça donne une idée de ce qui est possible via VBA.

Intuitivement c'est vite dit. Disons qu'il est possible de faire des choses assez basiques sous l'éditeur qui répondent à une forte complexité sous VBA à mon sens. Bien qu'il y a l'équivalent du VBA qui est l'éditeur avancé sous POWER QUERY et permet de faire beaucoup beaucoup plus de choses. Et là encore, il faut se lancer dans l'apprentissage du langage M, sans intellisense, ça devient complexe.

PS : Oui je suis fénéant, à la moindre difficulté je cherche le contournement

Je comprends pas. Il faut ensuite personnaliser les requêtes à l'aide du langage M, c'est ça ?

C'est finalement un peu la même chose que l'enregistreur mais en exécutant des tâches plus complexes ?

Je suis pas sûr que tu me l'aies bien vendu !

La fainéantise, c'est aussi l'art d'utiliser ses ressources à bon escient au lieu de perdre son temps sur des détails sans réelle importance. C'est presque une qualité en fin de compte^^

Bonjour,

Mmmhhhh disons que c'est comme Excel : Tu as les fonctions de base NB.SI, etc ... Et via le VBA tu as les fonctions personnalisées NB.SI.COULEUR etc etc ...

Sous POWER QUERY tu as aussi des fonctionnalités de bases, et d'autres encore plus poussées si tu maîtrises le langage M. Par exemple pour un filtre tu vas pouvoir filtrer une colonne sur le mois d'avant en basique, mais si tu veux avoir le mois d'avant ET les autres mois encore avant, il va falloir fouiller dans l'éditeur avancé qui est l'équivalent de l'enregistreur de macro de ta requête et aller modifier toi même le code pour avoir le résultat escompté.

Je sais pas si c'est plus clair mais je me suis arrêté à la base, mais je sais que Jean-Eric s'amuse bien avec l'éditeur avancé !

Cdlt,

D'accord, je comprends mieux. PowerQuery interprète probablement mieux que VBA mais a ses limites qu'il faut pallier, comme avec l'enregistreur, par une intervention, les mains dans le cambouis...

Je vais sûrement m'y mettre un jour...

Merci pour ces infos !

PS : Oui je suis fénéant, à la moindre difficulté je cherche le contournement

Avec cette seule phrase, tu me l'as vendu

Cela fait 2 ans que j'ai débuté le code VBA et je galère encore pas mal.
J'ai eu l'occasion de survoler PQ mais de très très haut.
Je vais donc regarder cela d'un peu plus près, car étant donné que je dois manipuler pas mal de données dans un outil évolutif, j'ai l'intuition que PQ risque fort de me rendre de grands services.

Merci pour vos échanges très instructifs

Je me suis lancé dans POWER QUERY car je trouve que c'est un outil vraiment puissant quand bien utilisé et une passerelle pour appréhender POWER BI qui fonctionne également sous POWER QUERY/POWER PIVOT et permet l'exploitation et analyse visuelle de données afin de prendre des décisions stratégiques pertinentes. Le côté industriel qui remonte.

C'est tout à fait ça.
Pour mon outil , je dois recueillir une multitude de données techniques, financières, temporelles, administratives... afin de permettre :
- aux utilisateurs de suivre leurs nombreux projets avec des userforms
- aux chefs de piloter avec des TCD et des tableaux de bords
- à la présidence d'arbitrer avec 2 graphiques dans un PowerPoint
Je m'étais donc un peu penché sur PowerPivot et PowerBI, mais dans ma structure ils n'utilisent que Excel et la fonction SOMME.
Les obliger à cliquer sur "Valider les macros" à l'ouverture de mes fichiers est déjà un challenge lol.
Du coup j'ai mis tous ces supers outils au tiroir pour plus tard.
Tu m'as donné envie de m'y replonger

Rechercher des sujets similaires à "propager valeurs chaine caracteres"