Enviar datos a la primera celda vacía
Tengo esta código para enviar datos a una tabla de excel. El problema que tengo es que no lo hace en la primera celda vacía que encuentra si no en la ultima celda dentro del rango dinámico. El Rango se llama Dades_taula y es una tabla. Me gustaría que al los datos salieran siempre en la primera celda vacía.
¿Qué estoy haciendo mal? ¿Por qué no me busca la primera celda vacía del la tabla?
Private Sub Enviar_Click()
Dim dades As Worksheet: Set dades = Sheets("dades")
Dim Dades_taula As ListObject: Set Dades_taula = dades.ListObjects("Dades_taula")
Dim Dades_taulaRow As ListRow: Set Dades_taulaRow = Dades_taula.ListRows.Add
Dim totalArt As Long: totalArt = Me.list_productes.ListCount
Dim i As Long
If FA.value = Empty Then
FA_final.Caption = "-"
End If
If PAD.value = Empty Then
pad_final.Caption = "-"
End If
If totalArt > 0 Then
For i = 0 To totalArt - 1
Dades_taulaRow.Range(i + 1, 1).value = Me.num_equipament_final.Caption
Dades_taulaRow.Range(i + 1, 2).value = Me.tipologia_final.Caption
Dades_taulaRow.Range(i + 1, 3).value = Me.nom_equipament_final.Caption
Dades_taulaRow.Range(i + 1, 4).value = Me.municipi.value
Dades_taulaRow.Range(i + 1, 5).value = Me.comarca.value
Dades_taulaRow.Range(i + 1, 6).value = Me.Entitat.Caption
Dades_taulaRow.Range(i + 1, 7).value = Me.programa_final.Caption
Dades_taulaRow.Range(i + 1, 8).value = Me.FA_final.Caption
Dades_taulaRow.Range(i + 1, 9).value = Me.pad_final.Caption
Dades_taulaRow.Range(i + 1, 10).value = Me.proveidor_final.Caption
Dades_taulaRow.Range(i + 1, 11).value = Me.list_productes.List(i, 0)
Dades_taulaRow.Range(i + 1, 12).value = Me.list_productes.List(i, 1)
Dades_taulaRow.Range(i + 1, 13).value = Me.total_pad.Caption
Dades_taulaRow.Range(i + 1, 14).value = Me.data.value
Next i
Else
MsgBox "No hi ha material a la llista", vbInformation, "Res..."
End If
MsgBox ("ENREGISTRAT CORRECTAMENT")
End sub
1 Respuesta
Respuesta de Abraham Valencia
1

