Listbox menguante

Tengo un listbox que se alimenta de un rango de excel de 4 columnas, ese rango puede variar porque básicamente es el resultado de una búsqueda al clickar en un commandbutton, pero cada vez que le doy al commandbutton y la búsqueda no da resultados y por tanto el listbox se queda vacío pues el ancho del listbox va decreciendo... Este es código que pongo para inicializar el listbox, y no soy capaz de localizar el problema.
Private Sub UserForm_Initialize()
.....
With ListBox2
.ColumnCount = 4
.RowSource = rang2.Address
.ColumnWidths = 85 & ";" & 55 & ";" & 65 & ";" & 150
.ListStyle = 1
End With
...
Como soy novatillo en esto de macros, cualquier sugerencia que alguien pueda hacerme sera bien agradecida porque confieso que le he dedicado tiempo y no soy capaz de solucionarlo.
Salut.

1 Respuesta

Respuesta
1
Tienes toda la razón respecto a la propiedad autosize, estaba mirando un ComboBox.
He estado porbando y no he conseguido que se me redujera el tamaño de un ListBox automáticamente.
PAra ello me he añadido un botón con el siguiente código
ListBox2.RowSource=""
En ningún caso el ListBox2 ha cambiado de tamaño.
¿Seguro qué no tienes código en el botón que selecciona el rango y que ademas modifique el tamaño?
Por lo que comentas es probable que la propiedad Autosize este activada.
Sino es eso
Revisa si en alguna otra parte del código se cambia la propiedad Width
Cambia el código de inicialización a:
With ListBox2
.ColumnCount = 4
.RowSource = rang2.Address
.ColumnWidths = 85 & ";" & 55 & ";" & 65 & ";" & 150
.ListStyle = 1
.Autosize=False
.Width= 200 'Establece el ancho fijo que quieras
End With
Narices, te respondí pero perdí la respuesta porque me desconecté de la web ...
Agradezco tu sugerencia, pensé en Autozize pero no es una propiedad de un listbox y aunque le especifique el windth luego no me lo respeta cuando el rowsource no contiene datos... es curioso que si después de una búsqueda o dos que dan un rowsource vació, si en una tercera búsqueda da un rowsource con datos, me mantiene el listbox el mismo ancho que el de la última búsqueda sin resultados, es decir, el disminuido... quizás si hago que el rowsource contenga al menos ítulos de ta manera que al menos de una fila siempre como resultado, estaría solucionado,... seguramente alguna tontería se me escapa pero estoy encalaldo con esa tontería ;P
Gracias por tu respuesta
Revisare el código, soy principiante y no descarto haber cometido algún error en el código de botón, tabn leyéndote se me ha ocurrido poner un condicional que si rang2 esta vació, se imnicialice con rowsource = "",... parece lo mismo pero igual no lo es.
Gracias de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas