Tengo un listbox pero los títulos de las columnas son muy grandes y necesito que cuando escriba se incorporen debajo..

Que puedo hacer que los títulos de las columnas de un listbox cuando son muy largos me bajen en esa misma columna

1 respuesta

Respuesta
2

En un listbox no puedes poner algo como multiline, si no son muchos los encabezados, podrías poner cada título en un label, calculando que abajo de cada label quede la columna correspondiente. El tamaño de cada columna lo puedes establecer en la propiedad columnwidth del listbox, de esa forma podrás alinear los label con las columnas.

¡Gracias! El listbox tiefe 95 columnas eso seria imposible

Gracias

Eusebio

Otra opción es que pongas en 2 renglones el encabezado en la hoja, entonces cargas con rowsource el listado, pero los dos primeros renglones siempre serán del encabezado.

¡Gracias! Disculpa me podrías poner un ejemplo

Eusebio

Se me había ocurrido algo como esto:

Cargas los títulos como si fueran registros, no utilizar la propiedad columnheads = true.

Pero que lo veo, creo que no es buena idea, ya que cuando hagas el scroll hacia abajo, pues los título se perderían y solamente verías puros registros.

Tal vez con con el control spreadsheet, pero en excel 2007 no está disponible, yo tengo 2007. Pero busca el control en Vba, Herramientas, controles adicionales, microsoft Office Spreadsheet

Mmmm, lo sigo revisando, haber si se me ocurre otra alternativa.

¡Gracias! Se valora el esfuerzo. Existe algo así pero lo veo muy complejo:

Eso también lo he visto en userform de Todoexpertos

'Carga los datos de la cabecera en listbox
For ii = 0 To 8
UserForm1.ListBox1.List(0, ii) = Sheets("Hoja2").Cells(1, ii + 1)
Next ii
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1.Clear
Me.ListBox1.RowSource = Clear
'Adiciona un item al listbox reservado para la cabecera
UserForm1.ListBox1.AddItem
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like UCase(TextBox1.Value) & "*" Then
Me.ListBox1.AddItem b.Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = b.Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 6)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 7)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = b.Cells(i, 8)
End If
Next i

'Carga los datos de la cabecera en listbox
For ii = 0 To 8
UserForm1.ListBox1.List(0, ii) = Sheets("Hoja2").Cells(1, ii + 1)
Next ii
'Me.ListBox1.ColumnWidths = "20 pt;70 pt;180 pt;80 pt;60 pt;60 pt;60 pt;60pt"
End Sub

Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas