Erreur variable objet ou variable de bloc with non définie

Bonjour,

Je travaille sur un projet dans lequel, j'ai besoin de manipuler 2 comboBox de Dates tel que lorsque les 2 liste auront la même date je devrai retrouver cette date dans ma base de donnée et effectuer es opérations sur la ligne de cette date. Je dois donc retrouver la cellule la contenant et retourner l'indice de la ligne concernée. Pour ce faire, j'utilise la méthode find() de Range, mais j'obtiens à tous les cous une erreur de type " variable objet ou variable de bloc with non définie".

J'ai cherché le soucis, mais en vain. Toute aide ou suggestion de votre part me serait d'une aide précieuse.

Voici le code qui bug: (et le classeur est joint si besoin est. L'erreur intervient après le clique du bouton valider)

Private Sub Valider_TDB_Click()

    Dim trouve
    Dim plage
    Dim Valeur_Cherchee
    Dim line
'    Dim AdressTrouvee

    If Date1_TDB.Value = Date2_TDB.Value Then

        Valeur_Cherchee = Date1_TDB.Value
        Set plage = Sheets("BD").Range("B7:B500")

        'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
        Set trouve = plage.Find(Valeur_Cherchee, LookAt:=xlWhole)

'        AdresseTrouvee = trouve.Address
'        MsgBox AdresseTrouvee
'

        MsgBox ("Cell(" & trouve.row & "," & trouve.Column & ")")

        'vidage des variables
        Set plage = Nothing
        Set trouve = Nothing

    End If

End Sub
12projvbav5-1.xlsm (624.83 Ko)

Bonjour Agbgio9

Dans le code de ton fichier tu n'avais pas

Set Trouve

mais uniquement

Trouve

ce qui te créé ton erreur

De plus on peut s'apercevoir (CTR+F) que le format de date recherché n'est pas correcte

2020 06 05 04h46 37

Il faut donc changer ton code ainsi

Private Sub Valider_TDB_Click()
  Dim Trouve As Range
  Dim Plage As Range
  Dim Valeur_Cherchee As Date
  Dim line
  '    Dim AdressTrouvee

  If Date1_TDB.Value = Date2_TDB.Value Then
    Valeur_Cherchee = Format(Date1_TDB.Value, "dd/mm/yyyy")
    Set Plage = Sheets("BD").Range("B7:B500")
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set Trouve = Plage.Find(Valeur_Cherchee, LookAt:=xlWhole)
    If Not Trouve Is Nothing Then
      MsgBox ("Cell(" & Trouve.Row & "," & Trouve.Column & ")")
    End If
    'vidage des variables
    Set Plage = Nothing
    Set Trouve = Nothing
  End If
End Sub

Sinon, très joli travail

@+

Vraiment merci infiniment pour le coup de pouce. Il m'est salutaire.

Rechercher des sujets similaires à "erreur variable objet bloc definie"