Si find ne trouve pas

Bonjour,

Je sais que le sujet a déjà été abordé plusieurs fois mais je ne trouve toujours pas de solution...

Je voudrais que lorsque le find ne trouve pas le "x", la boucle for continue tout de même

Debut:

'revenir ici avec N+1'

For N = 12 To NbLignes

If .Cells(N, 21) = "Yes" Then

Set rg = .Range(.Cells(N, 24), .Cells(N, 36)).Find("x", LookIn:=xlValues, LookAt:=xlWhole)

If IsEmpty(rg) = True Then GoTo Debut

Puis mon code

Meci d'avance

Cordialement

Bonjour,

Plutôt que de renvoyer au début si vide, on teste si "plein et si oui on exécute le code sinon on ne fait rien.

For N = 12 To NbLignes
    If .Cells(N, 21) = "Yes" Then
        Set rg = .Range(.Cells(N, 24), .Cells(N, 36)).Find("x", LookIn:=xlValues, LookAt:=xlWhole)
        If not rg is nothing then 'si 
            ...code
            ...code
        End If
   End If
Next

Ne pas oublier la déclaration dim rg as range

A+

Bonjour,

Merci de votre réponse mais le problème persiste, et je ne comprends pas pourquoi...

Merci d'avance pour votre aide.

Cordialement

For N = 12 To NbLignes

If .Cells(N, 21) = "Yes" Then

Set rg = .Range(.Cells(N, 24), .Cells(N, 36)).Find("x", LookIn:=xlValues, LookAt:=xlWhole)

If Not rg Is Nothing Then

y = rg.Column - 22

Else

End IF

End IF

...mais le problème persiste...

Non, initialement on pouvait supposer qu'il y avait un souci si rg était vide .

Maintenant on sait que le souci ne provient pas de rg vide.

Il doit bien y avoir un message d'erreur ?

Est ce que rg est bien déclaré ?

Est ce que y est bien déclaré ?

Que vaut rg.Column ?

Par ailleurs, dans la mesure où on ne fait rien dans le Else, il est inutile de l'écrire dans le code.

A+

ça fonctionne au final.. Merci beaucoup !

Rechercher des sujets similaires à "find trouve pas"