VBA erreur 91 avec méthode Find

altefqhatre

XLDnaute Junior
Bonjour,

Je rencontre une erreur 91 (Variable objet ou variable de bloc With non définie) avec la méthode Cells.Find dans le code suivant :

VB:
Sub Recherche1()

Dim toto As Long

Application.Goto Reference:="Total1"

toto = ActiveCell.Value
[INDENT]
If toto <> "0" Then

Sheets("Feuille").Select

  Cells.Find(What:=toto, After:=Range("G1"), LookIn:=xlFormulas, LookAt:= _

  xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _

  , SearchFormat:=False).Select

 ActiveCell.Offset(0, 2).Value = "Trouvé"

End If[/INDENT]

End sub()

Auriez-vous une idée de comment régler le souci svp ?

D'avance merci beaucoup !!
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
avec un code testé, c'est mieux
Code:
Sub Recherche1()

Dim toto As Long

Application.Goto Reference:="Total1"

toto = ActiveCell.Value

If toto <> "0" Then

Sheets("Feuille").Select

  On Error GoTo Gere_Erreurs
 
  Cells.Find(What:=toto, After:=Range("G1"), LookIn:=xlFormulas, LookAt:= _
  xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
  , SearchFormat:=False).Select

ActiveCell.Offset(0, 2).Value = "Trouvé"
End If
Exit Sub
Gere_Erreurs:

End Sub
 

Bebere

XLDnaute Barbatruc
bonjour
une autre solution sans select
Code:
Sub Recherche1()
    Dim toto As Long, Cel As Range

    toto = ActiveCell.Value

    If toto <> "0" Then
        Set Cel = Sheets("Feuille").Cells.Find(What:=toto, After:=Range("G1"), LookIn:=xlValues, LookAt:= _
                                              xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
                , SearchFormat:=False)
        If Not Cel Is Nothing Then
            Cel.Offset(0, 2).Value = "Trouvé"
        End If
    End If

End Sub
 

altefqhatre

XLDnaute Junior
bonjour
une autre solution sans select
Code:
Sub Recherche1()
    Dim toto As Long, Cel As Range

    toto = ActiveCell.Value

    If toto <> "0" Then
        Set Cel = Sheets("Feuille").Cells.Find(What:=toto, After:=Range("G1"), LookIn:=xlValues, LookAt:= _
                                              xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
                , SearchFormat:=False)
        If Not Cel Is Nothing Then
            Cel.Offset(0, 2).Value = "Trouvé"
        End If
    End If

End Sub

Hello à tous !

Merci pour vos réponses !

J'ai tenté avec le code de Bebere, mais malheureusement la procédure passe toujours de If Not Cel Is Nothing Then à End If. Comme si elle ne trouvait pas la valeur donnée à toto dans la feuille "Feuille"... pourtant la valeur de la référence "Total1" est bien présente dans "Feuille".

D'avance merci et belle journée à tous !
 

Si...

XLDnaute Barbatruc
Bon_jour

Dans la fenêtre de codes de la feuille qui contient la cellule nommée Total1 :

VB:
Sub Recherche1()
  Dim R As Range
  Range("Total1")(1, 3) = ""
  With Sheets("Feuille")
      Set R = .Cells.Find([Total1])
      If Not R Is Nothing And R.Column > 6 Then _
                 Range("Total1")(1, 3) = "Trouvé en " & R.Address
  End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh