Si fonction find ne trouve pas comment faire

Résolu/Fermé
rvz Messages postés 35 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 8 octobre 2008 - 6 févr. 2008 à 22:03
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 - 7 févr. 2008 à 01:07
Bonjour,

Désespéré !!!

Absolument pas moi comprendre 2 soirée que je bud
i = ActiveSheet.[c3].Value
If [zz:b10000].Find(i, range("zz")([zz:b10000].Count), xlValues, xlWhole, , xlNext, False).Select = i Then

ActiveCell.EntireRow.Copy [a3]
[zz:b10000].Find(i, range("zz")([zz:b10000].Count), xlValues, xlWhole, , xlNext, False).Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
ActiveWorkbook.Names.Add Name:="zz1", RefersToR1C1:=ActiveCell
Else: [a3]
End If

Tout va bien si la valeur de i est trouvé mais quand elle ne trouve pas message d'erreur !!!
Je ne comprends pas aidez moi svp si vous le pouvez !!!

6 réponses

dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 83
7 févr. 2008 à 01:07
La méthode .Find retourne la valeur Nothing si elle ne trouve rien.

Il fout alors créer une condition

If .find is Nothing

ou créer un select/case avec un CASE nothing qui t'envoi sur "la suite" et un case ELSE qui continue ton applic normalement
1
Bonjour

...
Else
ActiveSheet.[a3].Select ' je suppose que c'est ça que tu veux faire
end if
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 83
6 févr. 2008 à 23:38
Essayes avec un On error Goto au début deta procédure.

On Error GOTO NonTrouve
'Pocedure

NonTrouvé:
Msgbox("Pas de résultat pour votre question",vbOKOnly+vbExclamation)
End sub
0
rvz Messages postés 35 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 8 octobre 2008
6 févr. 2008 à 23:40
Non en fait i est un nom que je cherche dans la colonne b.
Malheureusement,quand find ne trouve pas je suis en erreur.
Donc je rajoute if pour dire que si = i then accompli la macro
et que pour else en fait je m'en fiche un peu,c'est pour celà que je sélectionne une cellule.

Mais surprise et pourtant je mouline,find me met toujours en erreur.

Je reste logique mais quelque chose m'échappe mais quoi ?

Pour info, la macro complête est :

i = ActiveSheet.[c3].Value
y = 12

For n = 1 To y
Sheets(n).Select

ActiveWorkbook.Names("zz").Delete
[b7:b10000].Find(i, range("b7")([b7:b10000].Count), xlValues, xlWhole, , xlNext, False).Select
ActiveCell.EntireRow.Copy [a2]
[b7:b10000].Find(i, range("b7")([b7:b10000].Count), xlValues, xlWhole, , xlNext, False).Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
ActiveWorkbook.Names.Add Name:="zz", RefersToR1C1:=ActiveCell

If [zz:b10000].Find(i, range("zz")([zz:b10000].Count), xlValues, xlWhole, , xlNext, False).Select = i Then

ActiveCell.EntireRow.Copy [a3]
[zz:b10000].Find(i, range("zz")([zz:b10000].Count), xlValues, xlWhole, , xlNext, False).Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
ActiveWorkbook.Names.Add Name:="zz1", RefersToR1C1:=ActiveCell
Else: [a3]
End If

Next

La deuxième recherche me met en erreur si elle ne trouve pas le i dans seconde partie (dans la première elle va obligatoirement trouvé)
Donc si solution ce serait extrêmement cool svp car j'aime apprendre mais 2 soirée la dessus je commence à ne plus savoir.
0

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

Posez votre question
rvz Messages postés 35 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 8 octobre 2008
6 févr. 2008 à 23:45
Non, un Msgbox("Pas de résultat pour votre question",vbOKOnly+vbExclamation) ne me convient pas,il faut que la macro passe à la suite automatiquement sans poser de question qu'elle trouve ou non.La suite de ce que j'ai écrit étant une nouvelle condition à partir de zz1 qui est une cellule de la colonne b.
Je ne sais pas pourquoi je bloque la dessus,c'est trop bête.
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 83
7 févr. 2008 à 00:57
A la place du msgbox, essaye de placer "la suite"
0