Extraire plusieurs chaînes de caractères entre deux caractères identiques

Résolu/Fermé
tanvir658 Messages postés 35 Date d'inscription jeudi 27 octobre 2011 Statut Membre Dernière intervention 20 août 2022 - Modifié le 25 févr. 2019 à 14:38
tanvir658 Messages postés 35 Date d'inscription jeudi 27 octobre 2011 Statut Membre Dernière intervention 20 août 2022 - 25 févr. 2019 à 21:52
Bonjour,

Voici un exemple de situation que j'aimerais résoudre:

"ahshshdhshdha bonjour/maison/porte ififiifofeofoejfefe

ahsdadasdasdad bonjour/voiture/porte fefefefefefefefef

frgtrgrgrgrgrggrg bonjour/igloo/porte grgrgrgrgrgrgrgr

dwdgrgrgrgrgrgr bonjour/bateau/porte grgrgrgrgrgrgrgr"


(ce texte se trouve sur un fichier Word et je peux le mettre sur une cellule excel)

Je recherche un moyen automatique pour extraire les mots maison, voiture, igloo, bateau et les mettre en colonne sur un fichier excel. J'imagine qu'il faudra utiliser VBA et dire que dans ce texte je veux extraire tous les mots qui se trouvent entre "bonjour/" et "/porte".

J'ai suivi un cours sur le VBA, mais je ne sais pas du tout comment je vais devoir m'y prendre. Auriez-vous un indice?

(Déjà: est-ce que c'est faisable? :euh:)

Merci!

6 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 févr. 2019 à 15:32
Bonjour Tanvir, bonjour le forum,

Peut-être comme ça (à adapter) :

Sub Macro1()
Dim O As Worksheet 'décalre la variable O (Onglet)
Dim TV As Variant 'décalre la variable TV (Tableau des Valeurs)
Dim TM() As Variant 'décalre la variable TM (Tableau des Mots)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    ReDim Preserve TM(1 To I) 'redimensionne le tableau des lignes TM
    TM(I) = Split(TV(I, 1), "/")(1) 'récupère le premier mot apres le symbole "/"
Next I 'prochaine ligne de la boucle
'renvoie dans la cellule F1 (à adapter) redimensionnée, le tableau TM transposé
O.Range("F1").Resize(UBound(TM), 1).Value = Application.Transpose(TM)
End Sub

1