Problème for next avec une condition [Résolu]

Signaler
Messages postés
19
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
14 octobre 2008
-
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
-
Bonjour à tous le forum.

Ma demande d'aide concerne du VBA, mais je ne sais pas comment faire pour change le thème.

Voici mon problème :
   j' ai saisi un programme qui me permet de réaliser une recherche avec un for next et des if else then.(Voir lr programme ci joint)

'Procedure de recherche
Sheets("Feuill1").Select
Dim Msg, Style, Response
Msg = "Souhaitez-vous continuer?"
Style = vbYesNo + vbInformation
Dim i
    For i = 1 To Range("B14").End(xlDown).Row
        If Range("B" & i) = Txtrecherche.Value Then
           Unload Me
           Rows(i).Select
           Response = MsgBox(Msg, Style)
                If Response = vbYes Then
                Selection.Font.Bold = False
                Else
                Exit Sub
                End If
        Else
        MsgBox "Pas trouver"
        Exit Sub
        End If
    Next i 

Le programme marche correctement , la première condition est réalisée et le textbox avec les deux bouton marche correctement.
Quand je rajoute la partie en bleu le progamme ne fonctionne plus, c'est à dire que meme si la valeur saisie dans le textbox se trouve dans la liste, le programme m'affiche le message "Pas trouver".

Je solicite votre aide pour m'aider à résoudre se problème (je n'ai plus d'idée pour trouver la solution).

Merci d'avance.

Cordialement

5 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Ton message s'affiche parce que ta valeur n'est pas trouvée dans la première cellule testée.
Et comme après avoir affiché le message, tu sort de la sub, du coup tu ne teste que la première cellule et pas les suivantes.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,  comme tu as écrit ton programme, si la valeur que tu recherches n'est pas égale à tous les éléments de ta liste, ça va t'afficher ce message.
(Ce que t'as écrit c'est:
Pour chaque elt de ma liste
si l'element i n'est pas le mot que je cherche, alors msgbox "pas trouvé", et sort de mon sub.
fin pour)
C'est donc clairement pas bon :)

 Pourapprendretoujoursplus!
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

Tu peux créer, avant ta boucle, une variable Booleenne ATrouve, que tu initialises à False, et tu mets vrai dedans dès que tuas trouvé ton mot.
Quand tu sors de ta boucle, c'est là que tu fais le test:
If Not ATrouve then
   msgbox "Pas trouvé"
EndIf

 Pourapprendretoujoursplus!
Messages postés
15
Date d'inscription
samedi 25 novembre 2000
Statut
Membre
Dernière intervention
18 juillet 2021

Bonjour,
Je ne suis pas certain de moi, mais tu peux essayer dans ta condition :
       If Range("B" & i).Value = Txtrecherche.Value Then
Messages postés
19
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
14 octobre 2008

Salut Mstarsup5

Tout d'abord je te remercie de fournir des renseignements.
Le seul problème c'est que je comprends ce que tu me dis mais
je connais pas le bon code pour le retranscrire (je débute).

Je vais faire des recherche sinon un coup de main serais le bien venue


 


Cordialement