Mostrar valores igual que los del listbox en una hoja

Dante Amor

¿Hola dan como estas?

Sabes tengo una duda ! Resulta que un listbox me muestra los valores ejemplo 1,65 en una fila en la siguiente fila de la misma columna del listbox 4,125 ... Lo que pasa que al pasarlos a una hoja me copia esos valores 1,65 y el otro 4.125 como si fuese mil..

Al copiarla me fije que el 1,65 lo copio como texto y el siguiente como numero..

La idea es que copie idénticamente los números que están el listbox a la hoja

Esta línea no se como dejarla he probado varias formas pero no me resulta

Worksheets("Reporte").Range("G" & nFilaFin) = ListBox1.List(i, 6)

Por favor estimado gracias .. Saludos

Private Sub CmbReporte_Click()
Application.ScreenUpdating = False
On Error Resume Next
   filafinal = Range("A" & Rows.Count).End(xlUp).Row
Hoja2.Range("A2:J" & filafinal).ClearContents
    Dim nFilaFin As Double
    Dim nTotDat As Double
    nFilaFin = Worksheets("Reporte").Range("A" & Rows.Count).End(xlUp).Row
    nFilaFin = nFilaFin + 1
    nTotDat = 0
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            Worksheets("Reporte").Range("A" & nFilaFin).Value = ListBox1.List(i, 0)
            Worksheets("Reporte").Range("B" & nFilaFin).Value = ListBox1.List(i, 1)
            Worksheets("Reporte").Range("C" & nFilaFin).Value = ListBox1.List(i, 2)
            Worksheets("Reporte").Range("D" & nFilaFin).Value = ListBox1.List(i, 3)
            Worksheets("Reporte").Range("E" & nFilaFin).Value = CDate(Format(ListBox1.List(i, 4), "short date"))
            Worksheets("Reporte").Range("F" & nFilaFin).Value = CDate(Format(ListBox1.List(i, 5), "short date"))
           ''' , "#,##0.000")
            Worksheets("Reporte").Range("G" & nFilaFin) = ListBox1.List(i, 6)
            Worksheets("Reporte").Range("H" & nFilaFin).Value = ListBox1.List(i, 7)
            Worksheets("Reporte").Range("J" & nFilaFin).Value = ListBox1.List(i, 8)
           ' Worksheets("Reporte").Range("H3").Value = lbltotal.Caption
            Worksheets("Reporte").Range("I3").Value = CDbl(lbltotal)
            nFilaFin = nFilaFin + 1
            nTotDat = nTotDat + 1
        End If
    Next i
    If nTotDat = 0 Then
        MsgBox "Debe seleccionar datos para pasar a hoja reporte", vbCritical, "Validación"
        Exit Sub
    Else
        MsgBox "Se han pasados: " & nTotDat & " datos a hoja Reporte", vbInformation, "Validación"
  Dim Archivo As Variant
ChDir ThisWorkbook.Path
Archivo = Application.GetSaveAsFilename( _
    InitialFileName:=".xlsx", _
    fileFilter:="Excel (*.xlsx), *.xlsx")
If Not Archivo = False Then
   ThisWorkbook.Sheets("Reporte").Copy
   ActiveWorkbook.SaveAs Archivo
   ActiveWorkbook.Close
   MsgBox "Archivo : NUEVO LIBRO " & Archivo & " creado.   bueno "
Else
   MsgBox "Proceso cancelado. No se ha creado el NUEVO LIBRO."
End If
Application.DisplayAlerts = True
        CheckBox6 = False
        End If
End Sub

1 respuesta

Respuesta
1

Primero, quita esta instrucción para saber si hay algún error

On Error Resume Next

Prueba así:

Worksheets("Reporte").Range("G" & nFilaFin) = cdbl(ListBox1.List(i, 6))

Gracias Dante Amor  era eso tenia esta línea que el dato a copiar no era una fecha. era texto

 Worksheets("Reporte").Range("F" & nFilaFin).Value = CDate(Format(ListBox1.List(i, 4), "short date"))

deje así la línea a cambia

Worksheets("Reporte").Range("G" & nFilaFin) = CDbl(Format(ListBox1.List(i, 6), "#,##0.000"))

por que sucede eso dan? que solo me copiaba el primer dato bien como estaba en el listbox y el otro no?

muchas gracias una solución rápida se agradece!!

En el listbox, como en el textbox, en el combobox, en el label, la información se almacena como texto, entonces si quieres utilizar esa información como número, tienes que convertirlo a número, para eso se utiliza la instrucción CdBL

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas