Macro compléter fragment de texte

Hypokhampe

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je ne m'adresse à ce forum qu'à partir du moment où j'ai épuisé mes ressources et capacités en VB... et là je désespère réellement ! Je ne compte plus le temps passé à chercher un solution efficace... J'espère que vous saurez m'aider comme vous m'avez aidé précédemment.

Après avoir extrait, compilé et trié des données d'une application que j'utilise au travail, j'ai besoin de compléter des données qui restent fragmentaires (du texte).

J'explique :
Dans le tableau qui résulte de mon premier traitement, j'ai une colonne qui contient des noms de gares en Europe. Ces noms après extraction sont incomplets pour la plupart. Ex : "Stuttgart N" au lieu de "Stuttgard Nord".

Je souhaiterais, avec une macro ou une formule, retrouver le nom complet de la gare (si le nom complet n'y est pas déjà) à l'aide de la liste compléte de mes gares, en fonction du fragment, et remplacer le fragment par le nom complet dans le tableau.

J'ai le même souci avec ma colonne "fournisseurs", donc en m'aidant vous feriez d'une paire deux coups.

Je prie pour un miracle ! Mon outil est presque au point. En espérant vous lire prochainement.

A bientôt !:)
 

jp14

XLDnaute Barbatruc
Re : Macro compléter fragment de texte

Bonsoir

Une piste
Ci joint un fichier avec une macro pour rechercher une valeur dans un classeur.
Le résultat de la recherche est affichée dans une "listview", ce qui permet à l'opérateur de sélectionner la donnée valide, la procédure retourne alors le nom de la feuille et le numéro de ligne.
Pour simplifier la saisie on peut utiliser un combobox.

Il faut paramétrer les deux macros de base "recherche2" et "recherche3" et les constantes.

A tester et à modifier

JP
 

Pièces jointes

  • recherchetextboxoucombo.zip
    35.8 KB · Affichages: 23
  • recherchetextboxoucombo.zip
    35.8 KB · Affichages: 20
  • recherchetextboxoucombo.zip
    35.8 KB · Affichages: 21

Hypokhampe

XLDnaute Nouveau
Re : Macro compléter fragment de texte

J'ai farfouillé dans ces solutions mais toutes me renvoient vers des combobox ou des userforms.
Or, je cherche à ce que le fragment dans ma colonne permette de rechercher le nom complet de ma gare et à remplacer ce fragment par le nom complet automatiquement.

Est-ce qu'une formule du genre :

=equiv(A1&"*";maliste)

pourrait fonctionner (je suis sûr qu'il faut ajouter quelques détails) ?

Avec ça je créerais une colonne pour le résultat de la formule, je copie le résultat dans une nouvelle colonne (valeur uniquement) et j'élimine les deux premières colonnes pour ne garder que le résultat.

J'espère ne pas emmeler les pinceaux de tout le monde...

En espérant vous lire...

HK
 

kjin

XLDnaute Barbatruc
Re : Macro compléter fragment de texte

Bonsoir,
Le pb c'est qu'hormis ton exemple, tu n'as transmis aucune infos sur les valeurs à remplacer et les valeurs de remplacement, donc difficile de te proposer une solution.
Parce que si je me borne à cet exemple, je me dit qu'il y un espace dans le texte et qu'il suffit de comparer ce premier mot avec le premier mot des gares de la liste, donc "Stuttgart N" et "Stuttgart Nord"
Donc, en bouclant sur les nouveaux noms puis sur les anciens
...
If Left(ancien nom, InStr(1,ancien nom, " ")) = Left(nouveau nom , InStr(1, nouveau nom, " ")) Then
ancien nom = nouveau nom
...
Mais comme je sais qu'il y a Paris Nord, Paris Lyon ...
A+
kjin
 

Hypokhampe

XLDnaute Nouveau
Re : Macro compléter fragment de texte

Wow ! Quelle formule ! Je ne connais pas la moitié des instructions de ce code ! Enfin ça peut marcher...avec des explications... Et je ne demande qu'à combler mes lacunes !

En fait, je viens de me rendre compte d'une donnée logique (c'est bien les logiciels et les machines ça !). Le fragment contient nécessairement 11 caractères et ce pour chaque fragment. Autrement dit, si j'ai "Stuttgart N" comme fragment pour "Stuttgart Nord" comme nom complet (et ainsi de suite : "Ulm Hbf " pour "Ulm Hbf"), je peux faire une liste à 2 colonnes avec pour étiquette "fragment" à 11 caractères et "nom complet" dans un onglet dédié, et répondre à mon problème de départ en faisant une RECHERCHEV intégrée dans une macro enregistrée qui remplace le fragment par le nom complet.

CQFD.

Mon frère avait raison, pourquoi chercher une macro ou une formule quand on ne pense même pas à réfléchir avant à la logique des données ?

Et dire qu'il m'aura fallu 4 bières et 7 cigarettes pour en arriver là... (les nouveaux dopants ?)

Je suis soulagé et prêt à fignoler mon projet en me disant que j'y suis parvenu seul ! ICH BIN DER HK !

Je vous passe le code si ça peut servir mais c'est tellement simple que ce serait insulter la génialité des plus grands VBistes du site.

Merci quand même, toutes ces réflexions m'ont aidé puisque j'ai la solution !

A très bientôt sur XLD!
 

Statistiques des forums

Discussions
312 328
Messages
2 087 317
Membres
103 515
dernier inscrit
Cherbil12345