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 SubMerci 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 SubVotre 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,