Automatisation via une extraction d'une chaîne de caractère

Bonjour,

Je suis face à un problème. Je suis dans le cas ou j'ai un fichier que je reçois tous les jours récapitulant toutes les données par rapport aux différents fournisseurs.

Ainsi, le fichier est construit de tel sorte ça ce que le nom du Fournisseur se trouve dans un en-tête du tableau (Cf l'exemple ci-dessous).

J'aimerai donc extraire le nom du fournisseur en face de chaque référence en colonne A. Et ce de façon automatisé sachant que dès qu'on passe à un autre fournisseur, ma formule en A change et extrait le nouveau fournisseur en place.

Dans l'exemple, le nom du fournisseur se trouve en gras notamment en cellule B3, B30 et ainsi de suite.. De plus, le fournisseur n'est pas toujours le même et ne dispose pas toujours du même nombre de caractère. Ce que je souhaite extraire c'est juste le nom du fournisseur à chaque fois sans le numéro de compte qui le précède. (Le numéro de compte dispose toujours du même nombre de caractères) Donc le nom du Fournisseur commence toujours à la même position mais ne se finit pas toujours à la même position selon la taille du nom..

11ex-1.xlsm (12.48 Ko)

Merci d'avance pour toutes aides ou pistes.

Bonjour,

En prenant le texte entre parenthèses en B3 et avec Excel 365 :

=TEXTE.AVANT(TEXTE.APRES(B3;"(");")")

Bonjour,

Voici une proposition utilisant le fait que le nom du fournisseur est entre parenthèses (voir formules en M3 et M30)

4ex-1.xlsm (12.88 Ko)

Je vous remercie pour les réponses, néanmoins le problème est que je souhaite étirer la formule et donc ne pas avoir à mettre sous $ ma cellule B3.

En gros je souhaite que toutes mes cellules A (de A6 à A.....) soient sous formule et donc renvoie le fournisseur

En A3, à tirer vers le bas :

=SI(GAUCHE(B3;6)="compte";TEXTE.AVANT(TEXTE.APRES(B3;"(");")");A2)

Daniel

quelque chose comme ça donc?

10ex-1.xlsm (13.34 Ko)

Bonjour à tous,

Une solution power query :

5ex-1.xlsm (26.14 Ko)

La solution d'Ausecour marche très bien mais comment je fais si je souhaite uniquement le nom du Fournisseur entre les deux tirets.

Qu'en gros je ne souhaite pas avoir le "CMO_" et non plus le "_EUR"

Merci encore.

Et malheureusement pas encore initié à Power query :/

En A3, à recopier :

=SI(GAUCHE(B3;6)="compte";INDEX(FRACTIONNER.TEXTE(B3;"_");2);A2)

Quelquechose comme ça alors?

5ex-1.xlsm (13.37 Ko)

Cela marche superbe !!! j'ai juste un dernier problème que j'avais pas pris en compte lors de la rédaction de mon problème (désolé), c'est qu'il se peut que qu'a la place de "_EUR" ce soit "_USD" et du coup j'ai une erreur dès que j'étire la formule :/

Ah c'est bien ce que je craignais, dans ce cas:

6ex-1.xlsm (13.32 Ko)

Pour les versions postérieures à Excel 2010, en A3, à recopier vers le bas :

=SI(GAUCHE(B3;6)="compte";INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(B3;"_";"</R><R>")&"</R></M>";"//R");2);A2)

Daniel

Merci beaucoup pour votre aide. ça marche très bien.

Rechercher des sujets similaires à "automatisation via extraction chaine caractere"