Extraction de mot

Bonjour les gens.

Je me forme actuellement sur le VBA et on m'a donné un exercice à faire avec une macro.

En effet des mots sont inscrits dans la colonne A et je dois extraire "jour" de ces mots vers la colonne B, si ils possèdent bien sur le caractère "jour". Exemple j'ai "Bonjour", je souhaite prendre "jour" et le mettre dans la colonne à côté, la B. Si ils ne possèdent pas ce caractère, je souhaite passer au mot suivant.

J'aimerais que dans un premier temps vous me conseillez sur comment commencer car je crois que je pars mal et je n'ai pas envie que vous me donniez la solution toute faite.

Merci d'avance

9exemple.xlsx (9.91 Ko)

Edit : moi je commencerais comme cela mais c'est pour après que je bloque :

Sub extraction()

Dim extraction As String

extraction = "[az]jour[az]"

If extraction = "*jour*" Then

End Sub

bonjour

essaie en utilisant les instructions

for ... next

instr

cells ou range

Bonjour,

Je viens de reussir à créer la macro

Pour ma part j'ai utilisé InStr() / nbcar() / stxt() + une boucle standard for i = 1 to machinchosetrucbidulechouette

J'ai d'abord essayé sur la première cellule et une fois que j'ai eu le résultat escompté ensuite j'ai crée une boucle pour la colonne A.

la fonction InStr() t'aidera très certainement

Merci pour vos réponses, je continue à creuser, je vois globalement ce qu'il faut faire mais je manque de connaissances pour mettre en pratique :/

Je vous tient au courant !

C'est très difficile d'interagir car pour ma part je ne sais pas ce que je peux dire ou ne pas dire et d'autre part, je me mets à ta place et je me dis que ça doit être chiant de ne pas trop savoir ou on va et comment on y va.

pour faire la macro, je suis allé sur le web et j'ai tapé " chercher du texte dans un texte vba "

cela m'a amené à la fonction Instr() qui renvoie une position. A partir de cette position j'ai bidouillé la chose avec d'autres fonctions pour obtenir le résultat escompté , bon courage !

Bon je m'avoue vaincu, j'ai essayer d'utiliser les fonctions que vous m'avez conseillées, déja je me suis renseigné dessus car je ne les connaissais pas toutes, j'ai pas toujours trouvé ce que je voulais et comment m'en servir, alors ça commence à m'énerver ! ^^

De ce que j'ai compris InStr permet de donner une position à ce qu'on cherche et stxt permet de récupérer la chaîne de caractère qu'on veut (ici "jour"). Après Nbcar permet de donner le nombre de caractère qu'on cherche, donc 4.

Et la boucle For / Next permet de repeter le processus jusqu’à la cellule désirée (A1 jusqu’à A10 par exemple).

C'est comme si j'avais toutes les pièces du puzzle mais j'arrivais pas à les assembler correctement ...

Je veux bien que vous me donniez la macro si ça ne vous dérange pas ...

Sub test()
t="jour" ' chaine à rechercher

For i = 1 To 100 'boucle pour parcourir les lignes de 1 à 100

If InStr(Cells(i, 1),t) <> 0 Then Cells(i, 2) =t 
' si le mot contenu dans t est présent dans la cellule en ligne i, colonne 1, on copie t 
'dans la cellule en colonne 2, sur la même ligne. on ne fait d'extraction, mais on copie simplement t, car  dans tous les cas t est le 
'résultat qu'on obtiendrait en faisant l'extraction.

'le code qui fait l'extraction serait celui-ci

a=InStr(Cells(i, 1),t) 'a contient la position du premier caractère de la chaine t dans la cellule en ligne i, colonne 1
If a <> 0 Then Cells(i, 2) =mid(cells(i,1),a,len(t)) ' si mot trouvé alors on extrait de la cellule en colonne 1, les caractères à partir 
' de la position a, sur une longueur du mot contenu dans t.

Next i 'on passe à la ligne suivante
End Sub

' edit commentaires ajoutés

C'était si simple que ça ?

En fait tout se passe dans cette ligne :

If InStr(Cells(i, 1),t) <> 0 Then Cells(i, 2) =t

Ce que je comprends pas trop c'est l'extraction, en fait si il trouve une valeur différente de zéro, donc au final si il trouve la variable t = jour, il l'a transpose dans la colonne à côté : Cells (i,2) c'est bien ça ? Et après intervient la boucle qui répète l'opération jusqu’à 100 cellules car i = 100.

bonjour,

commentaires ajoutés dans le message précédent.

Merci beaucoup pour ces explications, j'ai tout compris

Je vais essayer de réecrire le programme tout seul maintenant que j'ai compris comment fonctionne les fonctions.

Rechercher des sujets similaires à "extraction mot"