Saltar al contenido

Mantener formato de la celda de origen (personalizado) en listbox


Recommended Posts

publicado

Saludos.

Deseo presentar una información mediante listbox, todo está bien menos una cosa: hay una columna donde la información tiene un formato personalizado (8 mA, 12 mA, 16 mA, etc), el "mA" es el formato personalizado.

Pero el listbox no mantiene el formato y solo presenta (8, 12, 16,..).

Cómo podría solucionar este incoveniente y hacer que el listbox mantenga el formato de origen de la celda?

De antemano, gracias.

(No adjunto archivo porque no lo veo necesario)

publicado

El listbox no toma en cuenta el formato personalizado de las celdas, no se como cargas el listbox ya que no adjuntas un ejemplo pero podría ser algo así:

listbox1.additem cells(X,X) & " mA"[/CODE]

Salu2

publicado

Gracias es muy bueno tu aporte, pero lo que pasa es que mas abajo en la misma columna tengo otros formatos personalizados (mmH2O, °C, mmHg). Por eso deseo que mantenga el formato de origen. ¿Es posible esto?

El listbox lo cargo con un for, y las columnas con offset.

publicado

Suponiendo que la columna que tiene los formatos condicionales es la "F" el código seria así:

Sheets("HVswitches").Select
Me.ListBox5.Clear
k = 1
filas = Range("A1").CurrentRegion.Rows.Count
For j = 1 To filas
If Cells(j, k).Value Like TextBox1 Then
If Cells(j, 4) Like "ANTIGUO" Then
Me.ListBox5.AddItem Cells(j, k).Offset(0, 2)
'''''''''''''''''''''''''''''''''''
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 1) = Format(Cells(j, k).Offset(0, 5), Cells(j, k).Offset(0, 5).NumberFormat)
'''''''''''''''''''''''''''''''''''
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 2) = Cells(j, k).Offset(0, 6)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 3) = Cells(j, k).Offset(0, 7)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 4) = Cells(j, k).Offset(0, 8)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 5) = Cells(j, k).Offset(0, 9)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 6) = Cells(j, k).Offset(0, 10)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 7) = Cells(j, k).Offset(0, 11)
Me.ListBox5.List(Me.ListBox5.ListCount - 1, 8) = Cells(j, k).Offset(0, 12)
End If[/PHP]

publicado

Esta función te devuelve el string del final del formato.

Function Formato(Celda As Range) As Variant
x = Split(Celda.NumberFormat, Chr(34))
Formato = x(UBound(x) - 1)
End Function
[/CODE]

Por cierto, has de subir un archivo Excel para poder ver los formatos y el formulario, lo que has subido no sirve para pruebas.

.

publicado

He probado la solución aportada por [uSER=143023]@Riddle[/uSER] con tu archivo, cosa que deberías haber hecho tú, y funciona perfectamente.

publicado

Verás, casi funciona, pero el formato me atraviesa por la mitad al número que acompaña.

Por ejemplo: en la celda dice "10.28 mA" pero el listbox muestra "1mA0.28"...

Esta muy cerca de funcionar, pero no supe corregirlo, muchas gracias a ambos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.