[RESOLU]Envoi d'un retour si chaine non trouvée

Sanegone

XLDnaute Nouveau
Bonjour,

J'utilise une macro qui effectue à l'ouverture du classeur une recherche :

Cells.Find(What:="version_log_actif", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

Cependant j'aimerai que si la chaine n'est pas trouvé au lieu d'un plantage j'ai un retour en textbox. Quelqu'un sait comment faire ?

Merci d'avance.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Envoi d'un retour si chaine non trouvée

Bonjour Sanegone,
Quelque chose du genre:
Code:
Dim xRg As Range
    Set xRg = Nothing
    Set xRg = Cells.Find(What:="version_log_actif", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False)
    If xRg Is Nothing Then MsgBox "Pas trouvé!" Else xRg.Activate
 

Pierrot93

XLDnaute Barbatruc
Re : Envoi d'un retour si chaine non trouvée

Bonjour,

essaye ceci :
Code:
Dim x As Range
Set x = Cells.Find(What:="version_log_actif", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False)
If x Is Nothing Then MsgBox "non trouvé" Else MsgBox "trouvé"

bonne journée
@+
 

Sanegone

XLDnaute Nouveau
Re : Envoi d'un retour si chaine non trouvée

Parfait, ça fonctionne exactement comme y falait :) par contre je me pause une question :
"If xRg Is Nothing Then MsgBox "Pas trouvé!" Else xRg.Activate"

J'ai noter qu'il n'y as pas de end if ( fonctionne quand même très bien ^^ ) et si je le rajoute excel renvoi qu'un bloc end if existe sans bloc if. Comment cela ce fait il que dans ce cas on n'ai pas besoin de fermer le if ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Envoi d'un retour si chaine non trouvée

re-Bonjour,

L'instruction de condition (IF) a deux formes au moins.

L'une est souvent utilisée quand on a qu'une instruction à exécuter suivant que la condition est vérifiée ou non. Dans ce cas, elle s'écrit sur une ligne (hors caractères de continuation de ligne _ ) et ne se termine pas par endif
if moije="toto" then msgbox "je suis toto" else msgbox "je ne suis pas toto"
Si vous rajoutez un endif après la ligne ci-dessus, Excel considère que la fin de l'instruction correspond à ..toto" et que sa syntaxe est correcte (1ière forme de if). Trouvant un endif isolé (après la fin de l'instruction) et ne voyant pas un nouveau début de IF, l'interpréteur signale une erreur.

L'autre est souvent utilisée quand on a plus d'une instruction à exécuter suivant que si la condition est vérifiée ou non. Dans ce cas, elle est multiligne et se termine par endif.
if moije="toto" then
msgbox "je suis toto"​
else
msgbox "je ne suis pas toto et je vous quitte."​
exit sub​
endif


Sélectionner dans votre code l'instruction IF et taper F1. L'aide d'Excel est plutôt bien faite.
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
583

Statistiques des forums

Discussions
312 322
Messages
2 087 275
Membres
103 506
dernier inscrit
L_APPRENANT