IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[vba excel] chercher un mot dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 28
    Points
    28
    Par défaut [vba excel] chercher un mot dans une cellule
    Bonsoir,

    ma problématique est la suivante: je souhaite trouver un mot précis dans une cellule qui contient plusieurs mots, (par exemple : trouver le mot "ESPACE" dans une cellule contenant "RENAULT ESPACE RXE") je ne sais pas si il existe un fonction répondant à mes attentes dans vba ? Si cette fonction n'existe pas, quelqu'un pourrait-il m'indiquer la démarche à suivre pour en créer une ?

    Merci d'avance pour vos futures réponses.

    MrYoYo

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    bonsoir,

    Voici un élément de réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
     
    motàchercher = InputBox("que cherchez vous ?")
    tailledemot = Len(motàchercher)
    'ici il faut commencer une boucle for ou while où tu souhaites chercher
     
        Celloùchercher = Cells(ligne, colonne) ' bien sûr il faut avant paramétrer ligne et colonne !
     
        For X = 1 To Len(CellàTester)
            Car = Mid(Celloùchercher, X, tailledemot)
                If Car = motàchercher Then
                        ' ce que tu veux
                  End If
        Next X
    'ici il faut fermer la boucle
    fast

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    désolé une erreur c'est glissée il faut remplacer

    par
    fast

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    Merci pour cette réponse très rapide,

    je viens d'adapter ta solution à mon problème, ça marche nickel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    For j = 1 To ActiveWindow.RangeSelection.Count
      nomachanger = ActiveWindow.RangeSelection.Cells(j, 1).Value
      MsgBox nomachanger
      Sheets(1).Select
      Range("a1").Select
      tailledemot = Len(nomachanger)
      Do While ActiveCell.Value <> ""
        For X = 1 To Len(ActiveCell)
            Car = Mid(ActiveCell, X, tailledemot)
                If Car = nomachanger Then
                        MsgBox nomachanger & " trouvé"
                  End If
        Next X
        ActiveCell.Offset(1, 0).Select
      Loop
      Sheets(2).Select
     
    Next j
    Merci beaucoup fast.

    bonne nuit.

  6. #6
    Membre du Club Avatar de catsur
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Je me permet de compléter ce topic car je trouve que l'élément de réponse fournit est compliqué.

    Je fournis donc une autre réponse, bien plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Range("A1").Value Like "*" & Range("A2").Value & "*" Then 
          MsgBox "Le mot " & Cells(2, 1).Value & " existe dans la cellule A1."
    End If
    Ce code recherche si le mot dans la cellule A2 existe dans la chaîne de mot de la cellule A1.

    Bonne journée et bon courage aux codeurs!

    catsur

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et Instr ? Ça sert à quoi ?

  8. #8
    Membre du Club Avatar de catsur
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 42
    Points
    42
    Par défaut
    Vu la façon dont la question est posé je suppose que ça fait la même chose..

    En fait je suis tombé sur ce topic un peu par hasard et quand j'ai vu la longueur de la réponse je me suis dit que j'allais poser un exemple plus court, pour le prochain qui aura besoin de faire ce type de code...

    Voilà c'est tout après celui qui veut utiliser Instr pas de problème je m'en fou moi... D'ailleurs je ne la connais même pas cette fonction...

    A plus

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello,
    Ce n'est pas à toi que s'adressait ma question, catsur, d'ailleurs ta solution n'est pas moins bonne qu'avec instr, ce sont les autres propositions qui m'ont, comme toi, fait réagir.
    Une explication sur Instr ? Non ? Ça ne fait rien, je la donne tout de même pour pas qu'il y en ait qui meurent idiot
    Instr sert à trouver un string cherché dans un string où chercher, et à fournir la position du string trouvé dans le string où chercher.
    Bref, si Instr <> 0 c'est que le premier string est bien dans le second. Ce qui donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Instr(Range("A1").Value, Range("A2").Value)<> 0 then _ 
          MsgBox "Le mot " & Cells(2, 1).Value & " existe dans la cellule A1."
    Bon après-midi

  10. #10
    Membre du Club Avatar de catsur
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 42
    Points
    42
    Par défaut
    Merci pour la réponse!!

    Je ne connaissais pas!

    A bientôt!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter nombre de mots dans une cellule Excel
    Par nkhalidy dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2017, 22h12
  2. Réponses: 3
    Dernier message: 19/06/2015, 10h41
  3. Réponses: 1
    Dernier message: 05/05/2013, 21h21
  4. [Excel] changer la position d'un mot dans une cellule
    Par VlaMonPseudo dans le forum Excel
    Réponses: 3
    Dernier message: 25/07/2007, 17h05
  5. comment en VBA mettre les mots dans une cellule en oblique
    Par antoine.dandois dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2007, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo