Recherche mot dans une cellule avec inputbox

Bonsoir,

J'ai ma cellule A1 qui contient du texte j'aimerai que je clique su un bouton ma cellule B7 il mette par exemple Mot trouvé ou mot non trouvé quand je cherche un mot précis ouvrant sur une fenêtre pouvant choisir le mot qu'on veur (il me semble que cela s'appel inputbox ) Comment je peux faire avec le code VBA sans mettre la formule littérale svp ?

Merci bien pour votre réponse

Bérel Kaëlig

Bonjour

est-ce cela ci-joint ?

Sub mot()
Dim mot
  mot = InputBox("Quel est votre mot ?", "MOT")
 ' Range("B3").Value = mot
If Sheets("Feuil1").Range("A1").Value = mot Then
'MsgBox "Trouvé"
Sheets("Feuil1").Range("B7").Value = "Trouvé"
Sheets("Feuil1").Range("A1").Select
Else
'MsgBox "Non Trouvé"
Sheets("Feuil1").Range("B7").Value = "Non Trouvé"
End If
End Sub

cdrlt,

André

11mot-test001.xlsm (19.05 Ko)

Super c'est exactement ca !!!!!!!!

Mais sur ton fichier cela fonctionne mais pas le miens il met tout le temps non trouvé ...

Super c'est exactement ca !!!!!!!!

Mais sur ton fichier cela fonctionne mais pas le miens il met tout le temps non trouvé ...

Re,

à voir si :

  • le nom de Feuil1 (sûrement mettre le nom de ta feuille ou le nom de ton onglet de ta feuille)
  • est ce que ta cellule A1 de ta feuille est bien en standard
  • Est ce que ta cellule A1 contient une formule ?

en attente d'un pro qui te conseilleras mieux que moi sur cela et merci d'avance

tout es bon j'attends un pro merci beaucoup

Je peux te contacter en message privé ? pour tenvoyer mon code entier si tu veux

Re,

Tu peux juste ôter les trucs sensibles de ton classeur et le déposer ici afin de faire bénéficier les forumeuses et forumeurs d'Excel

crdlt,

André

voilà

Private Sub btn_calcul_Click()

Application.ScreenUpdating = False

'Chaîne de Caractères

Range("A2").Select
    ActiveCell.FormulaR1C1 = "Nombre de lignes:"

Range("A3").Select
    ActiveCell.FormulaR1C1 = "Numéro de la ligne plus grand nombre de caratère:"

Range("A4").Select
    ActiveCell.FormulaR1C1 = "Nombre de caractères total de la ligne:"

    Range("A5").Select
    ActiveCell.FormulaR1C1 = "Nombre de caractères total de la cellule:"

Range("A6").Select
    ActiveCell.FormulaR1C1 = "Ligne avec plus de caratère:"

Range("A7").Select
    ActiveCell.FormulaR1C1 = "Résultat de la recherche:"

    s = Split(Range("A1"), vbLf) ' on considère la cellule A1
    maxc = -1: maxi = -1
    For i = LBound(s) To UBound(s)
        If Len(s(i)) > maxc Then maxc = Len(s(i)): maxi = i
    Next i
    Range("B2") = UBound(s) + IIf(LBound(s) = 0, 1, 0)
    Range("B3") = maxi + IIf(LBound(s) = 0, 1, 0)
    Range("B4") = maxc
    Range("B5") = Len(Range("A1"))
    Range("B6") = s(maxi)

'Autres informations

[B11] = Date
[B12] = Time
[B13] = Environ("USERNAME")
[B14] = Environ("COMPUTERNAME")
[B15] = Environ("IP")

Range("A9").Select
    ActiveCell.FormulaR1C1 = "Autres informations"

Range("A11").Select
    ActiveCell.FormulaR1C1 = "Date du jour:"

Range("A12").Select
    ActiveCell.FormulaR1C1 = "Heure actuelle:"

Range("A13").Select
    ActiveCell.FormulaR1C1 = "Nom d'utilsateur:"

Range("A14").Select
    ActiveCell.FormulaR1C1 = "Nom de l'ordinateur portable:"

'Format de cellule

Sheets("Feuil1").Range("A9", "B9").MergeCells = True 'fusion des cellules

Range("A9:B9").Select
    With Selection
        .HorizontalAlignment = xlCenter
    End With

Range("B11:B14").Select
    With Selection
        .HorizontalAlignment = xlCenter
    End With

'Colonne de gauche

        'Mettre en souligné
            Range("A2:A7").Font.Underline = True
            Range("A9").Font.Underline = True
            Range("A11:A14").Font.Underline = True

        'Mettre en gras
            Range("A2:A7").Font.Bold = True
            Range("A9").Font.Bold = True
            Range("A11:A14").Font.Bold = True

        'Les couleurs du texte
            Range("A2:A7").Font.ColorIndex = 3
            Range("A11:A14").Font.ColorIndex = 3

        'Les couleurs de la cellule
        Sheets("Feuil1").Range("A1:A7").Interior.ColorIndex = 18
        Sheets("Feuil1").Range("B2:B7").Interior.ColorIndex = 18
        Sheets("Feuil1").Range("A9:B9").Interior.ColorIndex = 18
        Sheets("Feuil1").Range("A11:B14").Interior.ColorIndex = 18

'Colonne de droite

        'Les couleurs
            Range("B2:B7").Font.ColorIndex = 2
            Range("B11:B14").Font.ColorIndex = 2

'Création des cellules

Worksheets("Feuil1").Range("A1:A7").Borders.LineStyle = xlContinuous
Worksheets("Feuil1").Range("A2:B7").Borders.LineStyle = xlContinuous
Worksheets("Feuil1").Range("A9:B9").Borders.LineStyle = xlContinuous
Worksheets("Feuil1").Range("A11:A14").Borders.LineStyle = xlContinuous
Worksheets("Feuil1").Range("B11:B14").Borders.LineStyle = xlContinuous

Dim mot
    mot = InputBox("Quel est votre mot ?", "MOT")
    ' Range("B3").Value = mot
    If Sheets("Feuil1").Range("A1").Value = mot Then
    'MsgBox "Trouvé"
    Sheets("Feuil1").Range("B7").Value = "Trouvé"
    Sheets("Feuil1").Range("A1").Select
Else
    'MsgBox "Non Trouvé"
    Sheets("Feuil1").Range("B7").Value = "Non Trouvé"
End If

Columns.EntireColumn.AutoFit

Application.ScreenUpdating = True

End Sub

Re,

En testant le code j'ai l'erreur à :

Range("B6") = s(maxi)

Ligne avec plus de caractères

si je mets l'apostrophe devant ton code pour le mot à rechercher fonctionne SI le mot à rechercher est bien dans la cellule A1 de ta feuille

  '  Range("B6") = s(maxi)

à mettre avant Dim mot :

Columns.EntireColumn.AutoFit

à voir de ce côté là

est-ce cela ci-joint

Cela ne fonctionne toujours pas

Re,

Je pense que c'est ma version d'Excel qui foire ton fichier car à par le MAXI (nombres de caractères) cela fonctionne sur ma version

crdlt,

André

ztestant

J'ai trouvé le problème ça fonctionne sur une ligne mais pas sur plusieurs je sais pas comment faire

Bonjour André

Quand je met une ligne dans ma cellule cela fonctionne mais par exemple si j'en met 3 lignes là il me met non trouvé. donc je pense qu'il faut trouvé une solution pour que le code que tu m'a passé compte le nombre de ligne et qu'il cherche le mot que je veux dans toutes les lignes

Bonjour toutes et tous,

Ah oki! je comprend mieux comme cela, je pensais que s'était que sur 1 seule cellule (A1) du mot à rechercher si présent

je prend un 2ème café et je regarde si tu me vois plus c'est que j'ai pas trouvé la solution adéquate et je m'en excuse par avance au cas où

crdlt,

André

D'accord enfaite j'ai ma cellule A1 mais dans cette cellule j'ai plusieurs lignes

Re,

à tester mais incertain du résultat, je dois bloquer quelque part

EDIT : là ici sur ce fichier fonctionne si la valeur du mot est un nombre

Re,

merci de ta réponse mais cela ne fonctionne toujours pas ce n'est pas grave merci de ton aide

Re,

L'erreur sans doute et je pense que c'est une grosse erreur de ma part

c'est de lancer 1 procédure avec une autre procédure toujours dans la 1ère procédure alors que peut être il faut s'orienter en faisant appel (call) à la seconde procédure d'ou la recherche du mot dans x colonnes et x lignes.

bon, là je suis désolé mais si, je trouve quelque chose, je te le communiquerai

EDIT : je viens de voir que si l'on met des chiffres cela fonctionne dans mot à rechercher

à remplacer :

xlWhole

par

xlPart

crdlt,

André

d'accord merci car là je vois pas

ah je vais essayer

merci beaucoup :!!

Kaëlig

Re,

ci-joint

l'erreur xlwhole

Rechercher des sujets similaires à "recherche mot inputbox"