Problème for next avec une condition

Résolu
Goose17 Messages postés 19 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 14 octobre 2008 - 11 déc. 2007 à 15:32
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 11 déc. 2007 à 18:54
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 déc. 2007 à 16:03
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
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
11 déc. 2007 à 16:06
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!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
11 déc. 2007 à 18:54
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!
zener82 Messages postés 15 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 18 juillet 2021
11 déc. 2007 à 15:40
Bonjour,
Je ne suis pas certain de moi, mais tu peux essayer dans ta condition :
       If Range("B" & i).Value = Txtrecherche.Value Then

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Goose17 Messages postés 19 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 14 octobre 2008
11 déc. 2007 à 16:51
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
Rejoignez-nous