Problème d'affichage d'une selection ComboBox dans son Champ

Bonjour,

je suis en train de créer un formulaire avec listview et je suis confronté à un problème que je ne parviens pas à résoudre.

Dans ce formulaire, il y a plusieurs combo dynamiques afin de filtrer une base de données dans une listeview. Le code permet de filtrer le tableau de base de données et d'afficher le résultat dans la listview.

Lorsque je selectionne une valeur dans une combo, le filtre est bien appliqué, mais cette valeur n'apparait pas dans le champ de la combo.

Voici le code VBA:

Private Sub UserForm_Initialize()
    ' Initialiser la ListView
    With lvwResults
        .View = lvwReport
        .FullRowSelect = True
        .Gridlines = True

        ' Ajouter les colonnes à la ListView
        .ColumnHeaders.Add , , "Spot", 300
        .ColumnHeaders.Add , , "Hauteur d’eau", 100
        .ColumnHeaders.Add , , "Technique", 100
        .ColumnHeaders.Add , , "Type de leurre", 120
        .ColumnHeaders.Add , , "Couleur de leurre", 120
        .ColumnHeaders.Add , , "Opacité de leurre", 100
        .ColumnHeaders.Add , , "Montant/descendant", 120
    End With

    ' Alimenter toutes les ComboBox avec des valeurs uniques
    PopulateComboBoxes

    ' Afficher toutes les données dès l'ouverture
    PopulateListView True
End Sub

Private Sub PopulateComboBoxes()
    Dim ws As Worksheet
    Dim tbl As ListObject

    ' Définir la feuille et le tableau
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")

    ' Vérifier si le tableau existe
    If tbl Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est introuvable dans la feuille 'Source'.", vbCritical
        Exit Sub
    End If

    ' Alimenter chaque ComboBox avec des valeurs uniques
    FillCombo ComboEspece, tbl.ListColumns(4).DataBodyRange ' Colonne 4 pour ComboEspece
    FillCombo ComboTechnique, tbl.ListColumns(9).DataBodyRange ' Colonne 9 pour ComboTechnique
    FillCombo ComboCoef, tbl.ListColumns(13).DataBodyRange ' Colonne 13 pour ComboCoef
    FillCombo ComboCoefCroissant, tbl.ListColumns(14).DataBodyRange ' Colonne 14 pour ComboCoefCroissant
    FillCombo ComboBox1, tbl.ListColumns(16).DataBodyRange ' Colonne 16 pour ComboBox1
    FillCombo ComboVentOrientation, tbl.ListColumns(17).DataBodyRange ' Colonne 17 pour ComboVentOrientation
    FillCombo ComboTempératureAir, tbl.ListColumns(18).DataBodyRange ' Colonne 18 pour ComboTempératureAir
    FillCombo ComboCiel, tbl.ListColumns(19).DataBodyRange ' Colonne 19 pour ComboCiel
    FillCombo ComboTempératureEau, tbl.ListColumns(20).DataBodyRange ' Colonne 20 pour ComboTempératureEau
    FillCombo ComboClaretéEau, tbl.ListColumns(21).DataBodyRange ' Colonne 21 pour ComboClaretéEau
    FillCombo ComboMer, tbl.ListColumns(22).DataBodyRange ' Colonne 22 pour ComboMer
    FillCombo ComboPression, tbl.ListColumns(23).DataBodyRange ' Colonne 23 pour ComboPression
    FillCombo ComboLune, tbl.ListColumns(26).DataBodyRange ' Colonne 26 pour ComboLune
End Sub

Private Sub FillCombo(ByVal combo As MSForms.comboBox, ByVal colData As Range)
    Dim uniqueValues As Object
    Dim cell As Range

    ' Utiliser un dictionnaire pour collecter les valeurs uniques
    Set uniqueValues = CreateObject("Scripting.Dictionary")

    ' Parcourir les cellules et ajouter les valeurs uniques
    For Each cell In colData
        If Not uniqueValues.exists(cell.Value) And cell.Value <> "" Then
            uniqueValues.Add cell.Value, Nothing
        End If
    Next cell

    ' Alimenter la ComboBox avec les valeurs uniques
    combo.Clear
    combo.AddItem "" ' Option pour "aucun filtre"

    Dim key As Variant
    For Each key In uniqueValues.Keys
        combo.AddItem key
    Next key

    ' Sélectionner la première valeur par défaut s'il y en a des éléments
    If combo.ListCount > 0 Then
        combo.Value = combo.List(0) ' Sélectionne le premier élément par défaut
    End If
End Sub

Private Sub PopulateListView(Optional showAll As Boolean = False)
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim rng As Range
    Dim i As Long
    Dim item As ListItem

    On Error Resume Next
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")
    On Error GoTo 0

    If tbl Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est introuvable.", vbCritical
        Exit Sub
    End If

    If showAll Then
        If tbl.AutoFilter.FilterMode Then tbl.AutoFilter.ShowAllData
    Else
        With tbl.Range
            If ComboEspece.Value <> "" Then .AutoFilter Field:=4, Criteria1:=ComboEspece.Value
            If ComboTechnique.Value <> "" Then .AutoFilter Field:=9, Criteria1:=ComboTechnique.Value
            If ComboCoef.Value <> "" Then .AutoFilter Field:=13, Criteria1:=ComboCoef.Value
            If ComboCoefCroissant.Value <> "" Then .AutoFilter Field:=14, Criteria1:=ComboCoefCroissant.Value
            If ComboBox1.Value <> "" Then .AutoFilter Field:=16, Criteria1:=ComboBox1.Value
            If ComboVentOrientation.Value <> "" Then .AutoFilter Field:=17, Criteria1:=ComboVentOrientation.Value
            If ComboTempératureAir.Value <> "" Then .AutoFilter Field:=18, Criteria1:=ComboTempératureAir.Value
            If ComboCiel.Value <> "" Then .AutoFilter Field:=19, Criteria1:=ComboCiel.Value
            If ComboTempératureEau.Value <> "" Then .AutoFilter Field:=20, Criteria1:=ComboTempératureEau.Value
            If ComboClaretéEau.Value <> "" Then .AutoFilter Field:=21, Criteria1:=ComboClaretéEau.Value
            If ComboMer.Value <> "" Then .AutoFilter Field:=22, Criteria1:=ComboMer.Value
            If ComboPression.Value <> "" Then .AutoFilter Field:=23, Criteria1:=ComboPression.Value
            If ComboLune.Value <> "" Then .AutoFilter Field:=26, Criteria1:=ComboLune.Value
        End With
    End If

    Set rng = tbl.DataBodyRange
    If rng Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est vide.", vbExclamation
        Exit Sub
    End If

    ' Effacer les éléments précédents de la ListView
    lvwResults.ListItems.Clear

    ' Parcourir les lignes du tableau pour alimenter la ListView
    For i = 1 To rng.Rows.Count
        If Not rng.Rows(i).EntireRow.Hidden Then
            Set item = lvwResults.ListItems.Add(, , rng.Cells(i, 3).Value) ' Spot
            item.ListSubItems.Add , , rng.Cells(i, 8).Value ' Hauteur d’eau
            item.ListSubItems.Add , , rng.Cells(i, 9).Value ' Technique
            item.ListSubItems.Add , , rng.Cells(i, 10).Value ' Type de leurre
            item.ListSubItems.Add , , rng.Cells(i, 11).Value ' Couleur de leurre
            item.ListSubItems.Add , , rng.Cells(i, 12).Value ' Opacité de leurre
            item.ListSubItems.Add , , rng.Cells(i, 15).Value ' Montant/descendant
        End If
    Next i

    ' Mettre à jour les ComboBox selon les données visibles après le filtrage
    UpdateComboBoxes
End Sub

Private Sub UpdateComboBoxes()
    ' Actualiser les ComboBox avec les valeurs uniques visibles après le filtrage
    Dim ws As Worksheet
    Dim tbl As ListObject

    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")

    If tbl Is Nothing Then Exit Sub

    ' Remplir chaque ComboBox avec les valeurs uniques des colonnes visibles
    FillCombo ComboEspece, tbl.ListColumns(4).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboTechnique, tbl.ListColumns(9).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboCoef, tbl.ListColumns(13).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboCoefCroissant, tbl.ListColumns(14).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboBox1, tbl.ListColumns(16).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboVentOrientation, tbl.ListColumns(17).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboTempératureAir, tbl.ListColumns(18).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboCiel, tbl.ListColumns(19).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboTempératureEau, tbl.ListColumns(20).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboClaretéEau, tbl.ListColumns(21).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboMer, tbl.ListColumns(22).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboPression, tbl.ListColumns(23).DataBodyRange.SpecialCells(xlCellTypeVisible)
    FillCombo ComboLune, tbl.ListColumns(26).DataBodyRange.SpecialCells(xlCellTypeVisible)
End Sub

Private Sub ComboEspece_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTechnique_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCoef_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCoefCroissant_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboBox1_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboVentOrientation_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTempératureAir_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCiel_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTempératureEau_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboClaretéEau_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboMer_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboPression_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboLune_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub cmdReset_Click()
    Dim ctrl As Control
    Dim ws As Worksheet
    Dim tbl As ListObject

    ' Réinitialiser toutes les ComboBox
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.comboBox Then
            ctrl.Value = ""
        End If
    Next ctrl

    ' Réinitialiser les filtres dans le tableau
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")
    If Not tbl Is Nothing And tbl.AutoFilter.FilterMode Then
        tbl.AutoFilter.ShowAllData
    End If

    ' Réinitialiser la ListView pour afficher toutes les données
    PopulateListView True
End Sub

Merci d'avance

Bonjour,

Et vous pensez que nous allons pouvoir vous aider ainsi

Merci de lire/relie la charte de ce forum
https://forum.excel-pratique.com/excel/a-lire-avant-de-poster-charte-du-forum-et-informations-utiles...

Et notamment :
4. Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Merci pour votre réponse constructive et surtout pour votre bienveillance.

J'ai résolu mon problème.

Private Sub UserForm_Initialize()
    ' Initialiser la ListView
    With lvwResults
        .View = lvwReport
        .FullRowSelect = True
        .Gridlines = True

        ' Ajouter les colonnes à la ListView
        .ColumnHeaders.Add , , "Spot", 300
        .ColumnHeaders.Add , , "Hauteur d’eau", 100
        .ColumnHeaders.Add , , "Technique", 100
        .ColumnHeaders.Add , , "Type de leurre", 120
        .ColumnHeaders.Add , , "Couleur de leurre", 120
        .ColumnHeaders.Add , , "Opacité de leurre", 100
        .ColumnHeaders.Add , , "Montant/descendant", 120
    End With

    ' Alimenter toutes les ComboBox avec des valeurs uniques
    PopulateComboBoxes

    ' Afficher toutes les données dès l'ouverture
    PopulateListView True
End Sub

Private Sub PopulateComboBoxes()
    Dim ws As Worksheet
    Dim tbl As ListObject

    ' Définir la feuille et le tableau
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")

    ' Vérifier si le tableau existe
    If tbl Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est introuvable dans la feuille 'Source'.", vbCritical
        Exit Sub
    End If

    ' Alimenter chaque ComboBox avec des valeurs uniques
    FillCombo ComboEspece, tbl.ListColumns(4).DataBodyRange ' Colonne 4 pour ComboEspece
    FillCombo ComboTechnique, tbl.ListColumns(9).DataBodyRange ' Colonne 9 pour ComboTechnique
    FillCombo ComboCoef, tbl.ListColumns(13).DataBodyRange ' Colonne 13 pour ComboCoef
    FillCombo ComboCoefCroissant, tbl.ListColumns(14).DataBodyRange ' Colonne 14 pour ComboCoefCroissant
    FillCombo ComboBox1, tbl.ListColumns(16).DataBodyRange ' Colonne 16 pour ComboBox1
    FillCombo ComboVentOrientation, tbl.ListColumns(17).DataBodyRange ' Colonne 17 pour ComboVentOrientation
    FillCombo ComboTempératureAir, tbl.ListColumns(18).DataBodyRange ' Colonne 18 pour ComboTempératureAir
    FillCombo ComboCiel, tbl.ListColumns(19).DataBodyRange ' Colonne 19 pour ComboCiel
    FillCombo ComboTempératureEau, tbl.ListColumns(20).DataBodyRange ' Colonne 20 pour ComboTempératureEau
    FillCombo ComboClaretéEau, tbl.ListColumns(21).DataBodyRange ' Colonne 21 pour ComboClaretéEau
    FillCombo ComboMer, tbl.ListColumns(22).DataBodyRange ' Colonne 22 pour ComboMer
    FillCombo ComboPression, tbl.ListColumns(23).DataBodyRange ' Colonne 23 pour ComboPression
    FillCombo ComboLune, tbl.ListColumns(26).DataBodyRange ' Colonne 26 pour ComboLune
End Sub

Private Sub FillCombo(ByVal combo As MSForms.comboBox, ByVal colData As Range)
    Dim uniqueValues As Object
    Dim cell As Range

    ' Utiliser un dictionnaire pour collecter les valeurs uniques
    Set uniqueValues = CreateObject("Scripting.Dictionary")

    ' Parcourir les cellules et ajouter les valeurs uniques
    For Each cell In colData
        If Not uniqueValues.exists(cell.Value) And cell.Value <> "" Then
            uniqueValues.Add cell.Value, Nothing
        End If
    Next cell

    ' Alimenter la ComboBox avec les valeurs uniques
    combo.Clear
    combo.AddItem "" ' Option pour "aucun filtre"

    Dim key As Variant
    For Each key In uniqueValues.Keys
        combo.AddItem key
    Next key

    ' Sélectionner la première valeur par défaut s'il y en a des éléments
    If combo.ListCount > 0 Then
        combo.Value = combo.List(0) ' Sélectionne le premier élément par défaut
    End If
End Sub

Private Sub PopulateListView(Optional showAll As Boolean = False)
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim rng As Range
    Dim i As Long
    Dim item As ListItem

    On Error Resume Next
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")
    On Error GoTo 0

    If tbl Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est introuvable.", vbCritical
        Exit Sub
    End If

    If showAll Then
        If tbl.AutoFilter.FilterMode Then tbl.AutoFilter.ShowAllData
    Else
        With tbl.Range
            If ComboEspece.Value <> "" Then .AutoFilter Field:=4, Criteria1:=ComboEspece.Value
            If ComboTechnique.Value <> "" Then .AutoFilter Field:=9, Criteria1:=ComboTechnique.Value
            If ComboCoef.Value <> "" Then .AutoFilter Field:=13, Criteria1:=ComboCoef.Value
            If ComboCoefCroissant.Value <> "" Then .AutoFilter Field:=14, Criteria1:=ComboCoefCroissant.Value
            If ComboBox1.Value <> "" Then .AutoFilter Field:=16, Criteria1:=ComboBox1.Value
            If ComboVentOrientation.Value <> "" Then .AutoFilter Field:=17, Criteria1:=ComboVentOrientation.Value
            If ComboTempératureAir.Value <> "" Then .AutoFilter Field:=18, Criteria1:=ComboTempératureAir.Value
            If ComboCiel.Value <> "" Then .AutoFilter Field:=19, Criteria1:=ComboCiel.Value
            If ComboTempératureEau.Value <> "" Then .AutoFilter Field:=20, Criteria1:=ComboTempératureEau.Value
            If ComboClaretéEau.Value <> "" Then .AutoFilter Field:=21, Criteria1:=ComboClaretéEau.Value
            If ComboMer.Value <> "" Then .AutoFilter Field:=22, Criteria1:=ComboMer.Value
            If ComboPression.Value <> "" Then .AutoFilter Field:=23, Criteria1:=ComboPression.Value
            If ComboLune.Value <> "" Then .AutoFilter Field:=26, Criteria1:=ComboLune.Value
        End With
    End If

    Set rng = tbl.DataBodyRange
    If rng Is Nothing Then
        MsgBox "Le tableau 'Tableau34' est vide.", vbExclamation
        Exit Sub
    End If

    ' Effacer les éléments précédents de la ListView
    lvwResults.ListItems.Clear

    ' Parcourir les lignes du tableau pour alimenter la ListView
    For i = 1 To rng.Rows.Count
        If Not rng.Rows(i).EntireRow.Hidden Then
            Set item = lvwResults.ListItems.Add(, , rng.Cells(i, 3).Value) ' Spot
            item.ListSubItems.Add , , rng.Cells(i, 8).Value ' Hauteur d’eau
            item.ListSubItems.Add , , rng.Cells(i, 9).Value ' Technique
            item.ListSubItems.Add , , rng.Cells(i, 10).Value ' Type de leurre
            item.ListSubItems.Add , , rng.Cells(i, 11).Value ' Couleur de leurre
            item.ListSubItems.Add , , rng.Cells(i, 12).Value ' Opacité de leurre
            item.ListSubItems.Add , , rng.Cells(i, 15).Value ' Montant/descendant
        End If
    Next i

    ' Mettre à jour les ComboBox selon les données visibles après le filtrage
    UpdateComboBoxes
End Sub

Private Sub UpdateComboBoxes()
    Dim ws As Worksheet
    Dim tbl As ListObject

    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")
    If tbl Is Nothing Then Exit Sub

    ' Remplir uniquement les ComboBox non utilisées
    If ComboEspece.Value = "" Then FillCombo ComboEspece, tbl.ListColumns(4).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboTechnique.Value = "" Then FillCombo ComboTechnique, tbl.ListColumns(9).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboCoef.Value = "" Then FillCombo ComboCoef, tbl.ListColumns(13).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboCoefCroissant.Value = "" Then FillCombo ComboCoefCroissant, tbl.ListColumns(14).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboBox1.Value = "" Then FillCombo ComboBox1, tbl.ListColumns(16).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboVentOrientation.Value = "" Then FillCombo ComboVentOrientation, tbl.ListColumns(17).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboTempératureAir.Value = "" Then FillCombo ComboTempératureAir, tbl.ListColumns(18).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboCiel.Value = "" Then FillCombo ComboCiel, tbl.ListColumns(19).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboTempératureEau.Value = "" Then FillCombo ComboTempératureEau, tbl.ListColumns(20).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboClaretéEau.Value = "" Then FillCombo ComboClaretéEau, tbl.ListColumns(21).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboMer.Value = "" Then FillCombo ComboMer, tbl.ListColumns(22).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboPression.Value = "" Then FillCombo ComboPression, tbl.ListColumns(23).DataBodyRange.SpecialCells(xlCellTypeVisible)
    If ComboLune.Value = "" Then FillCombo ComboLune, tbl.ListColumns(26).DataBodyRange.SpecialCells(xlCellTypeVisible)
    ' Répétez pour les autres ComboBox
End Sub

Private Sub ComboEspece_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTechnique_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCoef_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCoefCroissant_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboBox1_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboVentOrientation_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTempératureAir_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboCiel_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboTempératureEau_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboClaretéEau_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboMer_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboPression_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub ComboLune_Change()
    ' Mettre à jour la ListView et les ComboBox lors de la sélection d'une valeur
    PopulateListView
End Sub

Private Sub cmdReset_Click()
    Dim ctrl As Control
    Dim ws As Worksheet
    Dim tbl As ListObject

    ' Réinitialiser toutes les ComboBox
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.comboBox Then
            ctrl.Value = ""
        End If
    Next ctrl

    ' Réinitialiser les filtres dans le tableau
    Set ws = ThisWorkbook.Sheets("Source")
    Set tbl = ws.ListObjects("Tableau34")
    If Not tbl Is Nothing And tbl.AutoFilter.FilterMode Then
        tbl.AutoFilter.ShowAllData
    End If

    ' Réinitialiser la ListView pour afficher toutes les données
    PopulateListView True
End Sub

Votre Avatar reflète le contenu de vos réponses.

0Quand un homme à faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson
UE - Article 11 : Toute personne a droit à la liberté d'expression...

C'est précisément ce je tente de faire.

... et quand un homme vous rabaisse, mieux vaut ne pas lui transmettre un fichier qui pourrait lui apprendre à pêcher... et à coder!

Vous allez certainement m'expliquer qu'il faut clôturer le sujet, mais pas comment.

Bonjour,

Votre Avatar reflète le contenu de vos réponses.

Merci de rester correct avec les membres de ce forum, il t'a simplement demandé de joindre un fichier en citant la charte, ce n'est pas la peine d'être désagréable avec lui et de te victimiser sur plusieurs posts.

Cordialement,

Rechercher des sujets similaires à "probleme affichage selection combobox champ"