Como enviar columnas de un Listbox a excel

Necesito saber como enviar un total de 5 Columnas de un listbox en un Formulario VBA a una hoja de excel, he estado trabajando con este código pero no me funciona

Private Sub btnex_Click()
Dim Fila As Integer
Dim Final As Integer
Dim i As Integer
    For Fila = 1 To 1000
           If Ins.Cells(Fila, 1) = "" Then
               Final = Fila
               Exit For
           End If
    Next
    For i = 0 To ltbdata.ListCount - 1
        ltbdata.Cells(Final, 1) = ltbdata.List(i, 0)
        Final = Final + 1
    Next
End Sub

Si alguien sabe que tengo mal en el código o conoce otra forma de hacer lo que necesito les agradecería mucho que me lo dijeran.

3 respuestas

Respuesta
3

Te anexo la macro con los cambios

Private Sub btnex_Click()
    Set a = Sheets("Ins")
    contador = 0
    For i = 0 To Me.ltbdata.ListCount - 1
        If Me.ltbdata.Selected(i) = True Then
            contador = contador + 1
            Filaedit = a.Range("A" & Rows.Count).End(xlUp).Row + 1
            a.Cells(Filaedit, "A") = ltbdata.List(i, 0)
            a.Cells(Filaedit, "B") = ltbdata.List(i, 1)
            a.Cells(Filaedit, "C") = ltbdata.List(i, 2)
            a.Cells(Filaedit, "D") = ltbdata.List(i, 3)
            a.Cells(Filaedit, "E") = ltbdata.List(i, 4)
        End If
    Next
    If contador = 0 Then
        MsgBox "Debe seleccionar al menos un item para exportar a Excel", vbInformation, "AVISO"
    Else
        MsgBox "Registros enviados a la hoja"
    End If
End Sub

.

.

Respuesta
1

He modificado mi código y ahora uso este

Private Sub btnex_Click()
On Error Resume Next
contador = 0
For x = 0 To Me.ltbdata.ListCount - 1
    If Me.ltbdata.Selected(x) = True Then
    contador = contador + 1
    End If
Next x
If contador = 0 Then
MsgBox "Debe seleccionar al menos un item para exportar a Excel", vbInformation, "AVISO"
Exit Sub
End If
Set a = Sheets("Ins")
Filaedit = a.Range("A" & Rows.Count).End(xlUp).Row + 1
Fila = Me.ltbdata.ListIndex
a.Cells(Filaedit, "A") = ltbdata.List(Fila, 0)
a.Cells(Filaedit, "B") = ltbdata.List(Fila, 1)
a.Cells(Filaedit, "C") = ltbdata.List(Fila, 2)
a.Cells(Filaedit, "D") = ltbdata.List(Fila, 3)
a.Cells(Filaedit, "E") = ltbdata.List(Fila, 4)
End Sub

Y ese me funciona, pero como veran en la siguiente imagen mi Listbox es de opción múltiple y necesito que se exporten todos los que el usuario seleccione, ya que actualemente no importa cuantos seleccione solo me lleva una linea

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas