Extraire une chaine de caractères au milieu d'une cellule

Bonjour tous le monde,

J'aimerai savoir s'il est possible d'extraire des informations d'une cellule dans une autre.

Il faudrait que je puisse extraire les dimensions de mes articles dans une autre colonne.

Le problème que mes repères ne sont jamais les mêmes.

Ce n'est pas toujours au même nombre d'espace, ou ca peut commencer par "h" ou par "l" etc etc ....

Et mon texte n'est pas aux extrémités de ma cellule non plus...

Exemple :

POT RONDE VERA H30D30 PLATINE ES24

COUPE RONDE VERA H15D34 PLATINE

VASE RONDE VERA H35D22 PLATINE

POT CARRE ZILLA L26L26H26 NOIR

POT CARRE CHAZ L21L21H21 ARGENT EGAL

VASE CARRE CHAZ L14L14H26 ARGENT EGAL

A3 POT OVAL PDQ JAYDEN L32L15H22 BLANC GRIS PLATINE

A4 POT RONDE PDQ JOLLY H12D13 BLANC TAUPE ROSE CL. ANTHRACITE

Avez-vous une formule qui pourrait extraire tous ça ?!

Merci d'avance pour vos réponses !!!!

Bonjour,

Présenté comme cela, cela me parait difficile.

Il faudrait trouver un point commun, si ce n'est jamais au même endroit, jamais de la même longueur ça va être dur.

Je remarque que les références de ton exemple commencent toutes comme suit

Une lettre, deux chiffres puis une lettre.

Est ce le cas pour TOUTES tes références

Si oui, on pourrait peut-être chercher à partir de ça.

Bonjour,

Une proposition avec une fonction personnalisée (VBA).

A tester.

Cdlt.

276cindy06.xlsm (16.30 Ko)
Jean-Eric a écrit :

Bonjour,

Une proposition avec une fonction personnalisée (VBA).

A tester.

Cdlt.

Bien joué

Bonjour Jean-Eric,

Effectivement cette macro est juste géniale !!!

Je me demande comment c'est possible, mais merci infiniment !!

Je me permet une autre petite question, quand j'ai le résultat ci-dessous grâce à votre macro, est-il possible de supprimer l'information de la colonne 1 ? Puisqu'elle est collée en colonne 2, je n'ai pas besoin que l'information soit la 2 fois.

POT RONDE VERA H30D30 PLATINE ES24 > H30D30

COUPE RONDE VERA H15D34 PLATINE > H15D34

VASE RONDE VERA H35D22 PLATINE > H35D22

POT CARRE ZILLA L26L26H26 NOIR > L26L26H26

POT CARRE CHAZ L21L21H21 ARGENT EGAL > L21L21H21

VASE CARRE CHAZ L14L14H26 ARGENT EGAL > L14L14H26

A3 POT OVAL PDQ JAYDEN L32L15H22 BLANC GRIS PLATINE > L32L15H22

A4 POT RONDE PDQ JOLLY H12D13 BLANC TAUPE ROSE CL. ANTHRACITE > H12D13

En espérant avoir été assez clair...

Je vous remercie beaucoup !!

Bonjour,

Tu brûles les étapes.

Avant tu dois vérifier que la fonction prend en compte tous les cas de figure.

Quel est le nombre de caractères mini que peut avoir la chaîne alphanumérique à extraire?

Dans ton exemple, J'ai isolé A3 et A4 en définissant une longueur de chaîne >4 !?

Cdlt.

Jean-Eric a écrit :

Bonjour,

Tu brûles les étapes.

Avant tu dois vérifier que la fonction prend en compte tous les cas de figure.

Quel est le nombre de caractères mini que peut avoir la chaîne alphanumérique à extraire?

Dans ton exemple, J'ai isolé A3 et A4 en définissant une longueur de chaîne >4 !?

Cdlt.

J'ai des exemples ou j'ai seulement 3 caractères ou la macro ne fait pas le job.

BOULE DE BUIS D40 VERT

BOULE DE BUIS D14 VERT

BOULE DE BUIS D19 VERT

Mais j'ai aussi le cas suivant :

BEGONIA H25 JAUNE EN JARDINIERE SLATE L29B13 TERRA

BEGONIA H25 SAUMON EN JARDINIERE SLATE L29B13 TERRA

CYCLAMEN H33 ROSE EN JARDINIERE SLATE L29L13 TERRA

CYCLAMEN H33 ROSE F. EN JARDINIERE SLATE L29L13 TERRA

La avec ta macro, l'info qui ressort est L29B13 et c'est ce que je veux c'est parfait.

Mais si on modifie ta macro pour que les 3 caractères de mon exemple précédent ressortent, ça risque de faire ressortir que H25 de cet exemple la ? Est ce que j'ai bien compris ?

Si oui, mieux vaut rester sur ta première macro qui me fait gagner déjà énormément de temps.

Merci beaucoup

Bonjour,

Peux-tu envoyer un petit fichier représentatif?

Il va falloir passer par une boucle, ou équivalent pour traiter la plage de cellules.

Ne serait-il pas préférable de remplacer la valeur existante par le résultat de la fonction?

Cdlt.

Jean-Eric a écrit :

Bonjour,

Peux-tu envoyer un petit fichier représentatif?

Il va falloir passer par une boucle, ou équivalent pour traiter la plage de cellules.

Ne serait-il pas préférable de remplacer la valeur existante par le résultat de la fonction?

Cdlt.

Bonjour,

Tu trouveras ci-joint un échantillon de mon fichier (32 lignes parmi mes 1800).

J'ai réalisé deux colonnes avec ce que j'aimerai obtenir. Je ne sais pas si cela répondra à ta question, car je ne comprends pas le principe de remplacer la valeur existante par le résultat de la fonction.

Si la valeur existante est par exemple : BOULE DE BUIS D40 VERT

Et que le résultat de la fonction est : D40

Alors oui l'un peut effectivement remplacer l'autre.

Cordialement.

Bonjour,

Ton fichier en retour.

Comme pressenti, tes données permettent difficilement d'arriver à un résultat garanti.

Essaie sur un plus grand échantillon.

A te relire.

Cdlt.

Jean-Eric a écrit :

Bonjour,

Ton fichier en retour.

Comme pressenti, tes données permettent difficilement d'arriver à un résultat garanti.

Essaie sur un plus grand échantillon.

A te relire.

Cdlt.

Bonjour,

Merci pour ton retour !!!

J'ai testé sur un plus gros échantillon ça ne fonctionne pas de partout effectivement mais ça dégrossi énormément !!

- Juste un petit souci technique, lorsque je lance la macro sur 436 lignes, elle bloque à la 50 ème ligne.

Je clique sur débogage et c'est "Select Case UBound(X)" qui est surligné en jaune. Bien entendu moi ça ne me parle pas du tout...

- Et autre chose, quand je fais fonctionner la macro sur un texte en minuscule, la nouvelle colonne est en majuscule. Y a t-il une solution pour que la nouvelle colonne ajoutée par la macro s'adapte à la police de la colonne de référence.

Exemple :

Impatiens rose - l182cm > L182CM > IMPATIENS ROSE

Morning glory blanc - l182cm > L182CM > MORNING GLORY BLANC

Morning glory fuchsia - l182cm > L182CM > MORNING GLORY FUCHSIA

J'en demande beaucoup, si c'est trop casse tête, ne passe pas trop de temps la dessus, pour ma part j'utilise déjà la première version que tu m'as envoyé et je fais les quelques modifications à la main. Je gagne déjà beaucoup de temps !! Merci beaucoup !!

Bonjour,

Je ne vais pas toucher au très bon code de Jean-Eric mais je viens de tester sur 600 lignes (en recopiant ton exemple vers le bas) et pas d'erreur, il faudrait peut être mettre le contenu de la ligne (du tableau XL) qui plante , elle doit se trouver à 50 lignes du départ soit à la 53 , mais donne toujours les 2 ou 3 avant et après aussi

Pour les minuscules, c'est une ligne dans le code qui oblige tes données à passer en majuscules, ça peut ne pas être transformé en majuscules mais, si son auteur ne vient pas , je te proposerai un petit changement que j'ai testé ici.

Attendons de voir si Jean Eric arrive

P.

ps: je n'aime pas changer le code et le publier sans l'accord de son auteur, c'est une question de courtoisie à mon humble avis

ps2: Tu peux aussi remettre un exemple avec les 100 premières lignes de ton fichier , on verra où ça plante

patrick1957 a écrit :

Bonjour,

Je ne vais pas toucher au très bon code de Jean-Eric mais je viens de tester sur 600 lignes (en recopiant ton exemple vers le bas) et pas d'erreur, il faudrait peut être mettre le contenu de la ligne (du tableau XL) qui plante , elle doit se trouver à 50 lignes du départ soit à la 53 , mais donne toujours les 2 ou 3 avant et après aussi

Pour les minuscules, c'est une ligne dans le code qui oblige tes données à passer en majuscules, ça peut ne pas être transformé en majuscules mais, si son auteur ne vient pas , je te proposerai un petit changement que j'ai testé ici.

Attendons de voir si Jean Eric arrive

P.

ps: je n'aime pas changer le code et le publier sans l'accord de son auteur, c'est une question de courtoisie à mon humble avis

ps2: Tu peux aussi remettre un exemple avec les 100 premières lignes de ton fichier , on verra où ça plante

Bonjour Patrick1957,

C'est gentil de venir à la rescousse. Je joins le document Excel avec les 100 premières lignes, j'ai ajouté de la couleur avec en rouge les anomalies relevées.

Je comprends ce positionnement alors attendons le retour de Jean-Eric

Merci beaucoup.

Cindy

Bonjour,

Bonjour Patrick,

Je ne vois aucun inconvénient à ce que tu interviennes, si cela permet de répondre favorablement à Cyndy06, la bien nommée.

Au sujet des minuscules et majuscules, c'est juste un détail.

Ensuite, on pourrait envisager de travailler avec les chaînes alphanumériques commençant par D, H, L, mais il y aura encore des incertitudes.

Cindy06 peut envoyer un nouveau fichier, plus représentatif des données qu'elle a à traiter.

Cdlt.

Rechercher des sujets similaires à "extraire chaine caracteres milieu"