Vérifier si condition ok

Salut le fil

Passer par des plages nommées ne pose pas trop de problèmes, là ou tu en auras c'est si tu as beaucoup de données à traitées, il te faudra je pense passer par des tableaux comme l'a si bien expliqué Boisgontier sur

Sinon pour le reste tu vires les deux Sub qui ne te servent plus à rien "CleanName" et "AllongeRange" et tu remplaces le code de ton bouton par celui-ci

Sub Bouton1_Cliquer()
    Dim sportifCurrentRegion As Range    'Cela correspond à toutes les cellules de la feuille Sportif
    Dim colSportif As Range    'colonne dans l'objet sportifCurrentRegion
    Dim CritèreCurrentRegion As Range    'Cela correspond à toutes les cellules de la feuille critére
    Dim colCritère As Range    'colonne dans l'objet CritèreCurrentRegion
    Dim c As Range    'Chaque cellule de la colonne colCritère de l'objet CritèreCurrentRegion
    Dim s As Range    'Plage de cellules ou l'on va rechercher
    Dim flag As Boolean    'Passe à False si le critère n'est pas trouvé
    Dim valCritère As Range
    Dim i As Long: i = 1
    Dim sh As Worksheet: Set sh = Worksheets("Résultat")
    'Pour  être générique on va rechercher le nombre de colonne dans la feuille sportif
    Set sportifCurrentRegion = Sheets("sportif").Range("A1").CurrentRegion

    'On définie la plage de recherche
    Set CritèreCurrentRegion = Sheets("critére").Range("A1").CurrentRegion
    flag = True

    sh.Range("A1").CurrentRegion.Interior.Color = vbWhite
    sh.Range("A1").CurrentRegion.Clear
    For Each colSportif In sportifCurrentRegion.Columns
        Debug.Print vbNewLine & "-------------------------------------------------------------------"
        Set s = colSportif.Range("A2:A" & colSportif.Cells.Find("*", , , , xlByColumns, xlPrevious).Row)

        For Each colCritère In CritèreCurrentRegion.Columns
            Debug.Print "  - Recherche du critère : " & colCritère.Range("A1") & " Pour le joueur: " & colSportif.Range("A1")
            For Each c In colCritère.Range("A2:A" & colCritère.Cells.Find("*", , , , xlByColumns, xlPrevious).Row)
                Set valCritère = s.Find(c)
                If valCritère Is Nothing Then
                    Debug.Print "    - Recherche de: " & c & " : False"
                    flag = False
                    Exit For
                Else
                    flag = True
                End If
            Next
            If flag Then
                Debug.Print "    - " & colCritère.Range("A1") & " trouvée pour le joueur : " & colSportif.Range("A1")

                With sh.Columns(i)
                    .Range("A1") = colSportif.Range("A1"): .Range("A1").Interior.Color = vbYellow
                    .Range("A" & .Cells.Find("*", , , , xlByColumns, xlPrevious).Row + 1) = colCritère.Range("A1")
                End With
            Else
            End If
        Next
        Set s = Nothing
        i = IIf(flag, i + 1, i)
    Next
    Set sh = Nothing
End Sub

Voilà....

Vous n'entendez rien ?

Moi si, j'ai la moto qui m'appelle donc fini le PC pour le moment, bonne journée à tous

super ça marche nickel !!!!

Un grand merci à toi

Rechercher des sujets similaires à "verifier condition"