XL 2010 Cherche un texte dans une cellule avec vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chrystel01

XLDnaute Occasionnel
Bonjour,

Je débute sur VBA et j'aurais une question svp...
j'ai une colonne A avec en ensemble de noms xxxpommexxx, yyypoire***,xxxcarotte***
Je souhaite que lorsque la macro trouve un champ qui contient pomme ou poire, elle écrive fruit sur la ligne correspondante en colonne B ou légume si elle trouve carotte

Sachant que j'ai créé une base de correspondance sur une autre feuille
pomme = fruit
poire = fruit
carotte = légume

Si vous aviez une solution, cela m'aiderait beaucoup.
Je vous remercie !

Chrystel
 
Bonjour,

Je vous remercie énormément pour ce retour très très rapide, détaillé et tellement utile.
Cela répond entièrement à mon besoin.
Merci aussi d'avoir expliqué la macro. Elle est très courte mais jamais je n'aurais réussi à la faire...
Alors un grand merci pour votre aide.
Bonne semaine

Chrystel
 
Bonjour,

Je vous souhaite tout d'abord une excellente année 2019.
Dans la macro jointe qui permet de trouver la correspondance d'un terme inclus dans une phrase

-Comment modifier le programme pour que la macro traite de la même façon :

1-les mots avec majuscule, minuscules, accents ou non ?
Exemple : que le texte inclut "légume;"Legume"; "LEgUMES" => la classification doit être aliment sur les 3 premières liges ci-dessous

1578324925444.png

2-les mots avec un espace
Exemple : "legumes1" et "legumes 1" doivent renvoyer la catégorie aliment.

Merci de votre aide 🙂

Chrystel
 
Bonjour Chrystel
En passant par une fonction :
Code:
Function Change(Mot)
    Mot = LCase(Mot)                ' Tout le mot en minuscules
    Mot = Replace(Mot, "é", "e")    ' Remplacement lettre accentuée
    Mot = Replace(Mot, "è", "e")
    Mot = Replace(Mot, "ê", "e")
    Mot = Replace(Mot, "à", "a")
    Mot = Replace(Mot, " ", "")     ' Suppression espaces
    If Right(Mot, 1) = "s" Then
        Mot = Mid(Mot, 1, Len(Mot) - 1) ' Supprime le s
    End If
End Function
Le test semble marcher :
Code:
Sub Test()
    Change ("LéguMes")
End Sub
Le problème peut se situer si un mot "normal" au singulier se terminé par un s ( genre stress ) mais je ne le pense pas.
Par contre Choux il faudrait supprimer le X mais Houx il faudrait le garder ! A voir à l'utilisation s'il faut le rajouter.
 
Dernière édition:
Bonjour Chrystel
En passant par une fonction :
Code:
Function Change(Mot)
    Mot = LCase(Mot)                ' Tout le mot en minuscules
    Mot = Replace(Mot, "é", "e")    ' Remplacement lettre accentuée
    Mot = Replace(Mot, "è", "e")
    Mot = Replace(Mot, "ê", "e")
    Mot = Replace(Mot, "à", "a")
    Mot = Replace(Mot, " ", "")     ' Suppression espaces
    If Right(Mot, 1) = "s" Then
        Mot = Mid(Mot, 1, Len(Mot) - 1) ' Supprime le s
    End If
End Function
Le test semble marcher :
Code:
Sub Test()
    Change ("LéguMes")
End Sub
Le problème peut se situer si un mot "normal" au singulier se terminé par un s ( genre stress ) mais je ne le pense pas.
Par contre Choux il faudrait supprimer le X mais Houx il faudrait le garder ! A voir à l'utilisation s'il faut le rajouter.
 
Bonjour Sylvanu,

Merci beaucoup pour ce retour express et toujours efficace.
Je pensais mettre le texte en majuscule pour résoudre le problème des accents => on n'aurait alors qu'à remplacer le texte par un texte en majuscules. Il existe une fonction pour cela ?
D'autre part, je n'arrive pas à voir comment compiler la 1ère macro et la fonction… J'ai essayé de les mettre dans 2 macros différentes, dans 1 seule mais je n'ai jamais fait cela et il semble que je ne fasse pas cela correctement
Pourriez-vous svp m'aider ? Je vous joints le fichier excel sur lequel j'ai 2 macros.
Un grand merci !
 

Pièces jointes

Il existe un excellent tuto 🙂 🙂 concernant les fonctions personnelles.
 
C'est l' insertion dans la macro de base que je ne trouvais pas : If Change_mot([Phrase]
Merci beaucoup pour la macro avec la fonction et l'excellent tuto !!!! C'est extra !!!!
Un grand merci pour les explications détaillées, votre disponibilité et vos réponses express !!! 🙂🙂
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour