Problème de recherche de ligne en utilisant 2 variables

Bonjour,

je cherche a trouver dans une feuille"Form" une ligne ou les valeurs en colonnes C et D correspondent aux valeurs respectivement en colline G et D d'une feuille"BD"

Pour cela j'ai utilisé 2 fonctions IF imbriquées. Cependant quelque soit les valeur que je donne a mes critère de recherche, le résultat est toujours le meme :

"La ligne correspondante trouvée est la ligne 1"

Sub TrouverLigneCorrespondante()
    Dim feuilleForm As Worksheet
    Dim feuilleBD As Worksheet
    Dim critere1 As String
    Dim critere2 As String
    Dim plageRecherche As Range
    Dim cellule As Range
    Dim ligneTrouvee As Range

    Set feuilleForm = ThisWorkbook.Sheets("Form")
    Set feuilleBD = ThisWorkbook.Sheets("BD")

    critere1 = feuilleBD.Range("G2").Value
    critere2 = feuilleBD.Range("D2").Value

    Set plageRecherche = feuilleForm.Range("C:D")

   For Each cellule In plageRecherche.Columns(1).Cells
        If cellule.Value = valeurCritere1 Then
            If cellule.Offset(0, 1).Value = valeurCritere2 Then

                Set ligneTrouvee = cellule.EntireRow
                                ' Faire quelque chose avec la ligne correspondante
                MsgBox "La ligne correspondante a été trouvée à la ligne " & ligneTrouvee.Row

Je pense m’être trompé dans l'utilisation de mes fonctions IF mais je n'arrive pas trouver ou.

Merci d'avance pour votre aide

Bonjour Loumatrix,

Dans votre code, vous avez défini vos critères comme critere1 et critere2, mais dans la comparaison dans vos boucles If, vous utilisez valeurCritere1 et valeurCritere2. Je pense que c'est l'origine du problème. Un code à tester :

Sub TrouverLigneCorrespondante()
    Dim feuilleForm As Worksheet
    Dim feuilleBD As Worksheet
    Dim critere1 As String
    Dim critere2 As String
    Dim plageRecherche As Range
    Dim cellule As Range
    Dim ligneTrouvee As Range

    Set feuilleForm = ThisWorkbook.Sheets("Form")
    Set feuilleBD = ThisWorkbook.Sheets("BD")

    critere1 = feuilleBD.Range("G2").Value
    critere2 = feuilleBD.Range("D2").Value

    Set plageRecherche = feuilleForm.Range("C:C")

    For Each cellule In plageRecherche.Cells
        If cellule.Value = critere1 Then
            If cellule.Offset(0, 1).Value = critere2 Then
                Set ligneTrouvee = cellule.EntireRow
                ' Faire quelque chose avec la ligne correspondante
                MsgBox "La ligne correspondante a été trouvée à la ligne " & ligneTrouvee.Row
                Exit Sub
            End If
        End If
    Next cellule

    MsgBox "Aucune ligne correspondante n'a été trouvée."
End Sub

J'ai ajouté Exit Sub après avoir trouvé la ligne correspondante, si vous voulez que le code continue à chercher d'autres correspondances, vous pouvez supprimer cette ligne.

Merci beaucoup pour la correction ! je penserais a prendre seulement le critère et pas sa valeur la prochaine fois

Rechercher des sujets similaires à "probleme recherche ligne utilisant variables"