Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 exclure certaines lignes d'un combobox

Claudinedu13

XLDnaute Nouveau
je voudrais alimenter mes combobox (5) uniquement avec les valeurs dont la catégorie (colonne 3) ne contient pas "Référence" ?
@patricktoulon tu m'avais donné un code à mettre sur une listbox que j'ai essayé d'adapter pour mes combobox mais je n'y arrive pas, je sais que ça doit être simple pour vous tous mais moi je galère. Merci

voilà mon code qui affiche mes combobox


VB:
Sub comboref()
Dim i
Dim f
Dim Rng
Set f = Sheets("Feuil1")
Set Rng = f.Range("B2:D" & f.[B600].End(xlUp).Row + 1)
  For i = 1 To 5
    Me.Controls("ComboBoxAb" & i).List = Application.Index(Rng, Evaluate("Row(1:" & Rng.Rows.Count & ")"), Array(1, 2, 3))
    Me.Controls("ComboBoxAb" & i).RemoveItem Me.Controls("ComboBoxAb" & i).ListCount - 1
    Me.Controls("ComboBoxAb" & i).ColumnCount = 3
    Me.Controls("ComboBoxAb" & i).ColumnWidths = "40;180;110"
  Next i
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    39.7 KB · Affichages: 4
  • comboboxsansreference.jpg
    72.8 KB · Affichages: 2
Solution
re
bonsoir Germaine
tu n'est pas obligé de bricoler avec index
des fois il faut rester simple

les lignes avec "Référence" n'y seront pas

j'ai transformé ton tableau en tableau structuré
et donc supprimé les lignes vides dans la feuille
elles s'ajoute toute seule si tu ajoute des données
VB:
Sub comboref()
    Dim i&, t, t2()
    t = Range("Tableau1")
    For i = 1 To UBound(t)
        If LCase(t(i, 4)) <> "référence" Then
            a = a + 1: ReDim Preserve t2(1 To 3, 1 To a): t2(1, a) = t(i, 2): t2(2, a) = t(i, 3): t2(3, a) = t(i, 4)
        End If
    Next
    For i = 1 To 5
        Me.Controls("ComboBoxAb" & i).ColumnCount = 3
        Me.Controls("ComboBoxAb" & i).Column = t2
        Me.Controls("ComboBoxAb" & i).ColumnWidths...

patricktoulon

XLDnaute Barbatruc
re
bonsoir Germaine
tu n'est pas obligé de bricoler avec index
des fois il faut rester simple

les lignes avec "Référence" n'y seront pas

j'ai transformé ton tableau en tableau structuré
et donc supprimé les lignes vides dans la feuille
elles s'ajoute toute seule si tu ajoute des données
VB:
Sub comboref()
    Dim i&, t, t2()
    t = Range("Tableau1")
    For i = 1 To UBound(t)
        If LCase(t(i, 4)) <> "référence" Then
            a = a + 1: ReDim Preserve t2(1 To 3, 1 To a): t2(1, a) = t(i, 2): t2(2, a) = t(i, 3): t2(3, a) = t(i, 4)
        End If
    Next
    For i = 1 To 5
        Me.Controls("ComboBoxAb" & i).ColumnCount = 3
        Me.Controls("ComboBoxAb" & i).Column = t2
        Me.Controls("ComboBoxAb" & i).ColumnWidths = "40;180;110"
    Next i
End Sub
 

Pièces jointes

  • Classeur1(3).xlsm
    26.5 KB · Affichages: 3

Claudinedu13

XLDnaute Nouveau
Coucou Raymond ,
Dans le mille pour le prénom , germaine c'est mon deuxième prénom
Comme tu dis , c'est du bricolage que je fais , merci de m'apporter ton aide , ce qui me permet d'apprendre beaucoup de choses
@ +
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…