Como registrar datos de un ListBox en una hoja de excel

tengo esta linea: Hoja2.Cells(Final, 8) = Format(Me.ListBox1.List(i, 2), "#,##.00") 'Débitos; que registra datos en la columna H, pero al meter una formula en la columna J me sale error (valor). Como puedo hacer para que no me de error y me reste.

1 respuesta

Respuesta
1

No debes enviar el texto con formato (*) sino que debes 'convertirlo' al formato deseado, en tu caso a decimales.

(*) Tu columna H ya tendrá el formato moneda con decimales. Y la instrucción sería:

Hoja2.Cells(Final, 8) = Cdbl(ListBox1.List(i, 2))

Sdos y no olvides valorar la respuesta.

Elsa

me da el error 13 en tiempo de ejecución: no coinciden los tipos, que puedo hacer. De antemano GRACIAS

Seguramente el valor del registro en Listbox col 2 esté vacío o es un texto y no podés aplicarle la función de conversión Cdbl.

Cuando se detenga el depurador entrá al Editor y pasá el mouse por la línea de error para ver el valor de i y así sabrás en qué fila se detuvo. Revisa ese detalle y si no encontrás la razón debes dejarme imagen del contenido del listbox.

Sdos!

el problema es que el valor de la columna 2 es un texto por eso no funciona.

que código le puedo poner para que sume la columna del debe.

Estamos intentando evitar que coloques texto en la col del debe, por lo menos esa fue tu consulta, así que aquí va el método:

Bueno, para guardar con decimales algún elemento del listbox se utiliza la función CDBL.

Y para evitar que esta función de error si algunos de estos elementos no son valores numéricos podés hacer la consulta en la misma instrucción:

If IsNumeric(ListBox1.List(i, 2)) Then Hoja2.Cells(final, 8) = CDbl(ListBox1.List(i, 2))

Esto hará que la Cells(Final,8) quede vacía si es un texto. Podés forzar a colocar un 0 de este modo:

If IsNumeric(ListBox1.List(i, 2)) Then
   Hoja2.Cells(final, 8) = CDbl(ListBox1.List(i, 2))
Else
   Hoja2.Cells(final, 8) = 0
End If

Y así ya podrás hacer cálculos en tu columna que según tu ejemplo es la 8.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas