Case à cliquer qui déclenche des filtres dans la BDD

Bonjour j'ai un fichier assez complexe avec pas mal de colonnes (20 en tout) :

image

Afin d'avoir des choses dynamique, ma formule pour l'overdue customer >60days ressemble à :
=(SOMME.SI.ENS(INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("OVERDUE 61-90"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("WEEKS"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); $C64; INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("Supplier"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); $Q64)+SOMME.SI.ENS(INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("OVERDUE +90"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("WEEKS"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); $C64; INDEX('BDD_CLI - N EUR'!$A:$J; 0; EQUIV("Supplier"; 'BDD_CLI - N EUR'!$A$1:$J$1; 0)); $Q64))/1000

Pour faciliter la compréhension des formules, je voudrait que quand je clique sur Overdue Customer >60days, k€ cela filtre ma BDD (comme le ferai la formule) ce qui permettrai aux utilisateurs de comprendre ce que va chercher la formule et je me demandais si c'était possible à faire avec des macros ou non


Les entêtes de ma BDD sont :

image

Merci d'avance si vous avez une approche :)

Elle est compliqué à comprendre mais j'ai utiliser cette macro dans la feuille et ça marche (je l'ai fait pour 2 colonne BU et BM

' Auteur : https://www.linkedin.com/in/spilerstheo/

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim lastRowBU As Long
    Dim lastRowBM As Long

    ' Déterminer la dernière ligne non vide pour les colonnes BU et BM
    lastRowBU = Me.Cells(Me.Rows.Count, "BU").End(xlUp).Row
    lastRowBM = Me.Cells(Me.Rows.Count, "BM").End(xlUp).Row

    ' Vérifier si la cellule sélectionnée est dans la plage BU8:BU[lastRowBU]
    If Not Intersect(Target, Me.Range("BU8:BU" & lastRowBU)) Is Nothing Then
        Call UpdateFilterOverdueCustomers(Target.Row, "BU")
    End If

    ' Vérifier si la cellule sélectionnée est dans la plage BM8:BM[lastRowBM]
    If Not Intersect(Target, Me.Range("BM8:BM" & lastRowBM)) Is Nothing Then
        Call UpdateFilterOverdueCustomers(Target.Row, "BM")
    End If
End Sub

Sub UpdateFilterOverdueCustomers(rowNumber As Long, column As String)
    Dim ws As Worksheet
    Dim lo As ListObject
    Dim weeksCol As ListColumn
    Dim supplierCol As ListColumn
    Dim overdue61Col As ListColumn
    Dim overdue90Col As ListColumn
    Dim supplierName As String
    Dim weekValue As String

    ' Définir la feuille contenant la BDD
    Set ws = ThisWorkbook.Sheets("BDD_CLI - N EUR")

    ' Définir le tableau
    Set lo = ws.ListObjects("BDD_CLI_NEUR")

    ' Effacer les filtres précédents
    If lo.AutoFilter.FilterMode Then
        lo.AutoFilter.ShowAllData
    End If

    ' Trouver les colonnes des critères
    On Error Resume Next
    Set weeksCol = lo.ListColumns("WEEKS")
    Set supplierCol = lo.ListColumns("Supplier")
    Set overdue61Col = lo.ListColumns("OVERDUE 61-90")
    Set overdue90Col = lo.ListColumns("OVERDUE +90")
    On Error GoTo 0

    If weeksCol Is Nothing Or supplierCol Is Nothing Or overdue61Col Is Nothing Or overdue90Col Is Nothing Then
        MsgBox "Les colonnes 'WEEKS', 'Supplier', 'OVERDUE 61-90' ou 'OVERDUE +90' n'existent pas dans le tableau.", vbCritical
        Exit Sub
    End If

    ' Obtenir les valeurs des colonnes C et Q pour la ligne sélectionnée
    supplierName = ThisWorkbook.Sheets("DATA_SEAFRIGO BELGIUM").Cells(rowNumber, "Q").Value
    weekValue = ThisWorkbook.Sheets("DATA_SEAFRIGO BELGIUM").Cells(rowNumber, "C").Value

    ' Appliquer le filtre basé sur la colonne cliquée (BU ou BM)
    With lo
        .Range.AutoFilter Field:=weeksCol.Index, Criteria1:=weekValue
        .Range.AutoFilter Field:=supplierCol.Index, Criteria1:=supplierName

        If column = "BU" Then
            .Range.AutoFilter Field:=overdue61Col.Index, Criteria1:=">0", Operator:=xlOr, Criteria2:="<>" & ""
            .Range.AutoFilter Field:=overdue90Col.Index, Criteria1:=">0", Operator:=xlOr, Criteria2:="<>" & ""
        End If
    End With
End Sub

Bonne journée

Rechercher des sujets similaires à "case cliquer qui declenche filtres bdd"