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
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
A voir également:
- Fonction find vba
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
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
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
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
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
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
On Error GOTO NonTrouve
'Pocedure
NonTrouvé:
Msgbox("Pas de résultat pour votre question",vbOKOnly+vbExclamation)
End sub
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
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.
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.
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
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.
Je ne sais pas pourquoi je bloque la dessus,c'est trop bête.
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
7 févr. 2008 à 00:57
A la place du msgbox, essaye de placer "la suite"