• Initiateur de la discussion Initiateur de la discussion tchou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tchou

XLDnaute Nouveau
Bonjour à tous,
Voilà mon problème,
par l'intermédiaire d'un combobox, je sélectionne la feuille que je veux visualiser dans le listbox.
je souhaite ajouter d'autres combobox pour affiner la selection mais je n'y arrive pas.
Merci d'avance pour votre aide
Est-ce que quelqu'un a une idée?
Voici mon code :

Private Sub CommandButton1_Click()
Dim nbLignes As Long, nbColonnes As Long
Dim I As Integer, J As Integer
Dim Largeur As Integer, Tablo()
Dim Formule As String

ReDim Tablo(0)
Sheets(ComboBox2.Text).Activate

nbLignes = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column

Range(Cells(1, 1), Cells(nbLignes, nbColonnes)).Select
ListBox1.ColumnCount = nbColonnes
ListBox1.RowSource = Selection.Address



'ajuster la largeur des colonnes qui se calcule en Points
'J'ai mis *6, parce que le test semblait correct
'en VB6, on utiliserait Textwidth qui ne semble pas exister sous Excel
'ou ScaleMode, twips, pixels,....


'Vérification des largeurs maximales des colonnes
'On stocke la plus grande valeur de chaque colonne dans un Tableau
For I = 0 To ListBox1.ColumnCount - 1
For J = 0 To ListBox1.ListCount - 1
If Largeur < Len(ListBox1.List(J, I)) * 8 Then
Largeur = Len(ListBox1.List(J, I)) * 8
End If
Next
Tablo(UBound(Tablo)) = Largeur
ReDim Preserve Tablo(UBound(Tablo) + 1)
Largeur = 0
Next

'Avec ce tableau, on génère une formule pour "ColumnWidths"
For I = 0 To UBound(Tablo) - 1
Formule = Formule & Tablo(I) & ";"
Next
'enlever le dernier point-virgule de la chaîne
Formule = Left(Formule, Len(Formule) - Len(Chr(34)))

'ajuster les colonnes d'un coup
ListBox1.ColumnWidths = Formule
End Sub

Private Sub retour_Click()
Me.Hide
End Sub

Private Sub UserForm_Initialize()
' z = Sheets("matériel en stock").Range("A1").Value
ComboBox2.ColumnWidths = "200"
ComboBox2.ColumnCount = 5
ComboBox2.Clear
ComboBox2.AddItem "matériel en stock"
ComboBox2.AddItem "VHL en stock"
ComboBox2.AddItem "Données"
ComboBox2.AddItem "Clients"
ComboBox2.AddItem "DIVERS"

' ComboBox2.Column(3, I) = z
' ComboBox2.ListIndex = 0
ComboBox2.ListIndex = 0

End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
65
Réponses
10
Affichages
766
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
280
Réponses
7
Affichages
116
Réponses
2
Affichages
68
Réponses
3
Affichages
611
Retour