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