Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ListBox multicolonnes

2 réponses
Avatar
renroy
Bonjour,

Dans un userform, j'ai un ListBox multicolonnes(3) dont la liste
d=E9pend des valeurs contenues dans une colonne de la feuille active.
Pr=E9alablement =E0 l'affichage du userform, je construis un array
(listPoste) ressemblant =E0 ceci:
listPoste(1,1) =3D "02-991-00-896"
listPoste(1,2) =3D "02-991-00-899"
listPoste(2,1) =3D "AUTRES FRAIS DE FINANCEME - INT=C9R=CATS SUR REMBOURS."
listPoste(2,2) =3D "AUTRES FRAIS DE FINANCEME - FRAIS DE FINANCEMENT -
AUTRES"
listPoste(3,1) =3D "01-Gabarit1"
listPoste(3,2) =3D "02-Gabarit2"
.=2E.

Lorsque je transpose les valeurs de listPoste =E0 mon ListBox, j'obtiens
ceci:
"02-991-00-896" "AUTRES FRAIS DE FINANC. - INT=C9R=CATS SUR REMBOURS."
"01--Gabarit1"
"02-991-00-899" "AUTRES FRAIS DE FINANC. - FRAIS DE FINANCEMENT -
AUTRES" "02--Gabarit2"

Mon probl=E8me est le suivant: lorsqu'il n'y a qu'une seule ligne qui se
qualifie pour le listbox alors j'obtiens 3 lignes d'une colonne ou
lieu d'une ligne de 3 colonnes:
"02-991-00-896"
"AUTRES FRAIS DE FINANC. - INT=C9R=CATS SUR REMBOURS."
"01--Gabarit1"

au lieu de

"02-991-00-896" "AUTRES FRAIS DE FINANC. - INT=C9R=CATS SUR REMBOURS."
"01--Gabarit1"

Pour affecter listPoste au listbox, j'utilise :
With ListboxP
.Clear
.List =3D Application.Transpose(listPoste)
End With

Si quelqu'un a une id=E9e du probl=E8me ...

Merci =E0 l'avance.

Ren=E9

2 réponses

Avatar
JB
Bonjour,

Utiliser Additem:

Private Sub B_go_Click()
Me.ListBox1.Clear
Set c = Range("a:a").Find(Me.TextBox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 2) = c.Offset(0, 2).Value
Set c = Range("a:a").FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub

http://boisgontierjacques.free.fr/pages_site/formulaireListes2colonnes.htm

JB

On 14 août, 15:16, wrote:
Bonjour,

Dans un userform, j'ai un ListBox multicolonnes(3) dont la liste
dépend des valeurs contenues dans une colonne de la feuille active.
Préalablement à l'affichage du userform, je construis un array
(listPoste) ressemblant à ceci:
listPoste(1,1) = "02-991-00-896"
listPoste(1,2) = "02-991-00-899"
listPoste(2,1) = "AUTRES FRAIS DE FINANCEME - INTÉRÊTS SUR REMBOURS ."
listPoste(2,2) = "AUTRES FRAIS DE FINANCEME - FRAIS DE FINANCEMENT -
AUTRES"
listPoste(3,1) = "01-Gabarit1"
listPoste(3,2) = "02-Gabarit2"
...

Lorsque je transpose les valeurs de listPoste à mon ListBox, j'obtiens
ceci:
"02-991-00-896" "AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"
"02-991-00-899" "AUTRES FRAIS DE FINANC. - FRAIS DE FINANCEMENT -
AUTRES" "02--Gabarit2"

Mon problème est le suivant: lorsqu'il n'y a qu'une seule ligne qui se
qualifie pour le listbox alors j'obtiens 3 lignes d'une colonne ou
lieu d'une ligne de 3 colonnes:
"02-991-00-896"
"AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"

au lieu de

"02-991-00-896" "AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"

Pour affecter listPoste au listbox, j'utilise :
With ListboxP
.Clear
.List = Application.Transpose(listPoste)
End With

Si quelqu'un a une idée du problème ...

Merci à l'avance.

René


Avatar
renroy
Merci,

Çà fonctionne A1.

René

On 14 août, 09:30, JB wrote:
Bonjour,

Utiliser Additem:

Private Sub B_go_Click()
Me.ListBox1.Clear
Set c = Range("a:a").Find(Me.TextBox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 2) = c.Offset(0, 2).Value
Set c = Range("a:a").FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub

http://boisgontierjacques.free.fr/pages_site/formulaireListes2colonne...

JB

On 14 août, 15:16, wrote:



Bonjour,

Dans un userform, j'ai un ListBox multicolonnes(3) dont la liste
dépend des valeurs contenues dans une colonne de la feuille active.
Préalablement à l'affichage du userform, je construis un array
(listPoste) ressemblant à ceci:
listPoste(1,1) = "02-991-00-896"
listPoste(1,2) = "02-991-00-899"
listPoste(2,1) = "AUTRES FRAIS DE FINANCEME - INTÉRÊTS SUR REMBOU RS."
listPoste(2,2) = "AUTRES FRAIS DE FINANCEME - FRAIS DE FINANCEMENT -
AUTRES"
listPoste(3,1) = "01-Gabarit1"
listPoste(3,2) = "02-Gabarit2"
...

Lorsque je transpose les valeurs de listPoste à mon ListBox, j'obtiens
ceci:
"02-991-00-896" "AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"
"02-991-00-899" "AUTRES FRAIS DE FINANC. - FRAIS DE FINANCEMENT -
AUTRES" "02--Gabarit2"

Mon problème est le suivant: lorsqu'il n'y a qu'une seule ligne qui se
qualifie pour le listbox alors j'obtiens 3 lignes d'une colonne ou
lieu d'une ligne de 3 colonnes:
"02-991-00-896"
"AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"

au lieu de

"02-991-00-896" "AUTRES FRAIS DE FINANC. - INTÉRÊTS SUR REMBOURS."
"01--Gabarit1"

Pour affecter listPoste au listbox, j'utilise :
With ListboxP
.Clear
.List = Application.Transpose(listPoste)
End With

Si quelqu'un a une idée du problème ...

Merci à l'avance.

René- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -