Extraire une chaîne entre deux chaînes

Bonjour à tous,

Voici ma petite problématique.

J'ai une cellule extraite d'une base de données qui me donne un résultat pour 4 champs.

AP :

NP :

Précedent :

Suivant :

J'ai séparé les données de chacune des lignes dans 4 cellules différentes.

En fin de compte je voudrais extraire les données apparaissant entre la fin de "AP : " et le début de "NP : " etc.....

Les formules fonctionnent bien, cependant je me demandais s'il y avait une VBA qui pourrait faire le même boulot.

Merci bien.

BOnjour

ci joint une proposition qui ne traite que la cellule D3...

mettre une boucle si nécessaire...

Fred

Bonjour spage, Fred,

J'ai d'abord corrigé les nombreuses anomalies de la donnée qui est en cellule D3 (sur 5 lignes) :

ligne n° 1 : "AP : 01 12 13 " → "AP : 01 12 13" ; j'ai enlevé l'espace en trop après le 13

ligne n° 3 : "Précedent : 22 " → "Précédent : 22" ; j'ai enlevé les 14 espaces en trop après le 22 ; j'ai enlevé un espace en trop après le ":" ; j'ai mis un "é" au lieu de "e" après le "c"

ligne n° 4 : "Suivant : 45 " → "Suivant : 45" ; j'ai enlevé les 4 espaces en trop après le 45 ; j'ai enlevé 2 espaces en trop après le ":"

ligne n° 5 : eh oui, y'a une 5ème ligne en trop, car y'a un CAR(10) en trop à la fin de D3, dû à un Alt Entrée de trop inutile ! j'ai bien sûr supprimé cette ligne (touche Retour arrière = Backspace).

finalement, sur les 5 lignes, y'a qu'la ligne 2 qu'y'a pas eu besoin d'être corrigée ! quelle chance, hein ? faut pas vous étonner, après ça, si j'gagne jamais au loto !

et tout ça sur une seule cellule ! j'ose pas imaginer c'que ça doit être sur toutes les cellules du vrai fichier !

toutes ces anomalies ayant été corrigées, on peut passer à la suite.


Solution sans VBA ; tu pourras voir qu'on peut faire le job par 4 formules plus simples : de E3 à H3


Solution VBA : E3:H3 : vide ; Ctrl e ➯ travail effectué ; Alt F11 pour voir le code VBA, puis revenir sur Excel


Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

Bonjour

Bonjour Dhany

je vais être un peu enquiquineur aujourd'hui....

Dhany

"Précédent : 22" ; j'ai enlevé les 14 espaces en trop après le 22 ; j'ai enlevé un espace en trop après le ":" ; j'ai mis un "é" au lieu de "e" après le "c"

d'après le Larousse :

https://www.larousse.fr/dictionnaires/francais/espace/31014?q=espace#30933

espace est nom féminin quand on parle de l'espace entre deux mots ...

donc tu aurais du mettre : une espace

Fred

Salut fred ! J'apprécie beaucoup qu'on ne confonde pas espace et espace !!!

[Pas encore lu le sujet, mais je vais le faire...]

Je n'ajoute rien ! J'aurais utilisé sur le fond la même méthode que Fred !

On peut juste la transformer en fonction matricielle, pour servir avec une fonction personnalisée les 4 cellules simultanément. A toi de donner tes préférences.

Cordialement.

Bonjour fred2406, MFerrand,

fred2406 a écrit :

d'après le Larousse, espace est nom féminin quand on parle de l'espace entre deux mots ...

donc tu aurais du mettre : une espace

MFerrand a écrit :

Salut fred ! J'apprécie beaucoup qu'on ne confonde pas espace et espace !!!


Extrait du Larousse :

dico larousse mot espace

Extrait du Petit Robert de la langue française :

dico le petit robert mot espace

Je vous laisse tous les deux, MFerrand et toi, méditer là-dessus !

dhany

Bonjour le forum, fred2406

donc tu aurais du mettre : une espace

Bravo pour cette remarque sur le genre du mot espace.

Mais ne pas oublier de faire la différence entre un article et un participe passé

Le Petit Robert se trompe...

Extrait du Littré :

2018 05 23 140901

Et tous les ouvrages de typographie le confirment.

@MFerrand

Sur l'article que tu montres, il y a bien écrit « Terme d'imprimerie » ; c'est donc toujours dans le domaine spécialisé de l'imprimerie, de la photocomposition, et de la typographie ; en plus, tu ajoutes : « Et tous les ouvrages de typographie le confirment ».

Mais dans le domaine général et courant, c'est-à-dire non spécialisé, on dit bien un espace au singulier, comme indiqué sur l'article du Petit Robert de la langue française.

Si tu tiens absolument à dire tout le temps une espace au féminin quelque soit le domaine (général ou spécialisé), c'est ton choix, et rien t'en empêche, hein ? moi, j'attendrai de travailler dans un des domaines spécialisés mentionnés plus haut pour dire une espace au lieu d'un espace ... sans vouloir te contrarier, n'est-ce pas ?

dhany

Dhany : Ne joue pas sur les mots ! On est dans le domaine de production de textes et manipulation de caractères... Et il n'est nul besoin d'être dans une imprimerie pour être tenu d'utiliser les termes spécifiques de ce domaine d'activité. A ce titre tu devrais alors t'interdire d'employer des termes comme casse ou fonte, intégralement issus de ce domaine.

si tu veux...

BOnjour

ci joint une proposition qui ne traite que la cellule D3...

mettre une boucle si nécessaire...

Fred

Bonjour Fred,

Merci beaucoup,

Effectivement ça fonctionne à merveille.

Comme mon fichier a 9 000 lignes, comment puis-je ajouter une boucle??

Hello spage,

As-tu essayé les 2 fichiers de ce message : https://forum.excel-pratique.com/viewtopic.php?p=652609#p652609

(un .xlsx et l'autre .xlsm)

dhany

Bonjour spage, Fred,

J'ai d'abord corrigé les nombreuses anomalies de la donnée qui est en cellule D3 (sur 5 lignes) :

ligne n° 1 : "AP : 01 12 13 " → "AP : 01 12 13" ; j'ai enlevé l'espace en trop après le 13

ligne n° 3 : "Précedent : 22 " → "Précédent : 22" ; j'ai enlevé les 14 espaces en trop après le 22 ; j'ai enlevé un espace en trop après le ":" ; j'ai mis un "é" au lieu de "e" après le "c"

ligne n° 4 : "Suivant : 45 " → "Suivant : 45" ; j'ai enlevé les 4 espaces en trop après le 45 ; j'ai enlevé 2 espaces en trop après le ":"

ligne n° 5 : eh oui, y'a une 5ème ligne en trop, car y'a un CAR(10) en trop à la fin de D3, dû à un Alt Entrée de trop inutile ! j'ai bien sûr supprimé cette ligne (touche Retour arrière = Backspace).

finalement, sur les 5 lignes, y'a qu'la ligne 2 qu'y'a pas eu besoin d'être corrigée ! quelle chance, hein ? faut pas vous étonner, après ça, si j'gagne jamais au loto !

et tout ça sur une seule cellule ! j'ose pas imaginer c'que ça doit être sur toutes les cellules du vrai fichier !

toutes ces anomalies ayant été corrigées, on peut passer à la suite.


Extraire chaine entre deux mots.xlsx

Solution sans VBA ; tu pourras voir qu'on peut faire le job par 4 formules plus simples : de E3 à H3


Extraire chaine entre deux mots.xlsm

Solution VBA : E3:H3 : vide ; Ctrl e ➯ travail effectué ; Alt F11 pour voir le code VBA, puis revenir sur Excel


Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

Bonjour Dhany,

Merci bien pour tout ce travail... en plus de la "grammaticalité" de la chose.

Pour les corrections des espaces et des retours, malheureusement, le fichier arrive tel quel d'une base de donnée et possède 9 000 lignes.

Mais le tout fonctionne parfaitement.

Pour la méthode avec Macro.

je vois bien que le code 10 est le changement de ligne dans la même cellule (ALT ENTRÉE) et que la BD semble produire ce code.

J'espère juste que ce n'est pas quelqu'un qui me fournit le fichier qui a fait les 9000 lignes manuellement

Je test la macro avec les 9 000 lignes et je vous reviens.

Bonsoir à tous...

je ne pensais pas faire tant de polémique avec mon problème de genre.....

sinon pour revenir au problème initial...Spage voici un fichier une avec boucle qui commence a la ligne 3 et qui va jusqu'à la dernière ligne occupée de la colonne D

Bonne Soirée

Fred

Fred Je suis très content de ne pas être seul à soulever ce point !

Bonjour à tous

Merci pour l'ensemble de vos réponses.

Le tout fonctionne avec l'ensemble des lignes.

Merci également pour le voyage linguistique, c'est rafraichissant.

Bonne soirée.

Merci pour ton retour, et bonne soirée à toi aussi.

dhany

Rechercher des sujets similaires à "extraire chaine entre deux chaines"