OVH Cloud OVH Cloud

Listbox à colonnes discontinues

2 réponses
Avatar
Marco38
Bonsoir,

Dans une UF j'ai une listbox. Je voudrais pourvoir=20
afficher plusieurs colonnes d'une feuille mais qui sont=20
discontinues par exemple sur 9 colonnes de ma liste les=20
colonnes A =E0 F puis AD =E0 AG de ma feuille.

Voila mon code :

Private Sub UserForm_Initialize()

Dim Ligne As Integer
Dim Plage As String
Dim Plage2 As String
Application.ScreenUpdating =3D False
Sheets("xxxxxxxxxxxxxxx").Select

Ligne =3D Sheets("xxxxxxxxxxxx").Range("A65536").End
(xlUp).Row

Plage =3D Sheets("xxxxxxxxx").Range("A2:f" & Ligne).Address
Plage2 =3D Sheets("xxxxxxxxxxx").Range("Ad2:ag" &=20
Ligne).Address
ListBox1.RowSource =3D Plage & Plage2 '*****PAS BON*****

Sheets("zzzzzzzzzzzz").Select
End Sub

Sinon j'avais penser =E0 faire 2 listbox l'une au dessus de=20
l'autre avec dans la 1er les colonnes A =E0 F puis dans la=20
2eme les colonnes AD =E0 AG. Donc la ligne 1 de la listbox2=20
correspond =E0 la suite de la ligne 1 de la listbox1 mais=20
c'est pas bien pratique pour suivre quand il y =E0=20
plusieurs dizaine de lignes.

Avez vous une solution?

Merci

Bonsoir

Marc

2 réponses

Avatar
Denis Michon
Bonsoir Marco38,


La propriété RowSource d'un combobox ne peut être référencé par une plage nommée contenant des colonnes non adjacentes.

Une façon de faire :
Utilises une feuille supplémentaire pour regrouper tes données.

Pour la rendre invisible à l'usager :


Worksheets("ListBoxList").Visible = xlVeryHidden


Et pour remplir ta listbox : Tu adaptes les noms des feuilles.

With Worksheets("Feuil1")
.Range("A:F,AD:AG").Copy Worksheets("ListBoxList").Range("A1")
Worksheets("ListBoxList").Range("A1").CurrentRegion.Name = "Plagelistbox"
UserForm1.ComboBox1.ColumnCount = 9
UserForm1.ComboBox1.ColumnWidths = "24,95 pt;24,95 pt;24,95 pt;" & _
"24,95pt;24,95 pt;24,95 pt;24,95 pt;24,95pt;24,95pt"
UserForm1.ComboBox1.RowSource = "Plagelistbox"
UserForm1.Show
End With


Salutations!





"Marco38" a écrit dans le message de
news:033c01c3a002$15d6c000$
Bonsoir,

Dans une UF j'ai une listbox. Je voudrais pourvoir
afficher plusieurs colonnes d'une feuille mais qui sont
discontinues par exemple sur 9 colonnes de ma liste les
colonnes A à F puis AD à AG de ma feuille.

Voila mon code :

Private Sub UserForm_Initialize()

Dim Ligne As Integer
Dim Plage As String
Dim Plage2 As String
Application.ScreenUpdating = False
Sheets("xxxxxxxxxxxxxxx").Select

Ligne = Sheets("xxxxxxxxxxxx").Range("A65536").End
(xlUp).Row

Plage = Sheets("xxxxxxxxx").Range("A2:f" & Ligne).Address
Plage2 = Sheets("xxxxxxxxxxx").Range("Ad2:ag" &
Ligne).Address
ListBox1.RowSource = Plage & Plage2 '*****PAS BON*****

Sheets("zzzzzzzzzzzz").Select
End Sub

Sinon j'avais penser à faire 2 listbox l'une au dessus de
l'autre avec dans la 1er les colonnes A à F puis dans la
2eme les colonnes AD à AG. Donc la ligne 1 de la listbox2
correspond à la suite de la ligne 1 de la listbox1 mais
c'est pas bien pratique pour suivre quand il y à
plusieurs dizaine de lignes.

Avez vous une solution?

Merci

Bonsoir

Marc
Avatar
marco38
Merci pour ta réponse je vais tester.

Marc
-----Message d'origine-----
Bonsoir Marco38,


La propriété RowSource d'un combobox ne peut être
référencé par une plage nommée contenant des colonnes non

adjacentes.

Une façon de faire :
Utilises une feuille supplémentaire pour regrouper tes
données.


Pour la rendre invisible à l'usager :


Worksheets("ListBoxList").Visible = xlVeryHidden


Et pour remplir ta listbox : Tu adaptes les noms des
feuilles.


With Worksheets("Feuil1")
.Range("A:F,AD:AG").Copy Worksheets
("ListBoxList").Range("A1")

Worksheets("ListBoxList").Range
("A1").CurrentRegion.Name = "Plagelistbox"

UserForm1.ComboBox1.ColumnCount = 9
UserForm1.ComboBox1.ColumnWidths = "24,95 pt;24,95
pt;24,95 pt;" & _

"24,95pt;24,95 pt;24,95 pt;24,95
pt;24,95pt;24,95pt"

UserForm1.ComboBox1.RowSource = "Plagelistbox"
UserForm1.Show
End With


Salutations!





"Marco38" a écrit
dans le message de

news:033c01c3a002$15d6c000$
Bonsoir,

Dans une UF j'ai une listbox. Je voudrais pourvoir
afficher plusieurs colonnes d'une feuille mais qui sont
discontinues par exemple sur 9 colonnes de ma liste les
colonnes A à F puis AD à AG de ma feuille.

Voila mon code :

Private Sub UserForm_Initialize()

Dim Ligne As Integer
Dim Plage As String
Dim Plage2 As String
Application.ScreenUpdating = False
Sheets("xxxxxxxxxxxxxxx").Select

Ligne = Sheets("xxxxxxxxxxxx").Range("A65536").End
(xlUp).Row

Plage = Sheets("xxxxxxxxx").Range("A2:f" & Ligne).Address
Plage2 = Sheets("xxxxxxxxxxx").Range("Ad2:ag" &
Ligne).Address
ListBox1.RowSource = Plage & Plage2 '*****PAS BON*****

Sheets("zzzzzzzzzzzz").Select
End Sub

Sinon j'avais penser à faire 2 listbox l'une au dessus de
l'autre avec dans la 1er les colonnes A à F puis dans la
2eme les colonnes AD à AG. Donc la ligne 1 de la listbox2
correspond à la suite de la ligne 1 de la listbox1 mais
c'est pas bien pratique pour suivre quand il y à
plusieurs dizaine de lignes.

Avez vous une solution?

Merci

Bonsoir

Marc


.