E stimado, disculpa por no responder a tiempo, pero ya tengo tu macro con los cambios.
Me parece que la definitiva sería esta:
Sub Registrar()
'---
' Por.Dante Amor
'---
'
Application.ScreenUpdating = False
Set l1 = ThisWorkbook
Set h1 = l1.ActiveSheet 'Hoja formato
'
libro2 = "direcciondehoja.xlsx"
existe = False
For Each libros In Workbooks
If libros.Name = libro2 Then
existe = True
Exit For
End If
Next
'
If Not existe Then
If Dir(l1.Path & "\" & libro2) <> "" Then
Workbooks.Open l1.Path & "\" & libro2
existe = True
End If
End If
If existe = False Then
MsgBox "No existe el libro: " & libro2, vbCritical
Exit Sub
End If
'
Set l2 = Workbooks(libro2)
Set h2 = l2.Sheets("hoja@.") 'Hoja destino
'
If h1.Range("H9").Value = "" Then
MsgBox "Falta la categoría", vbExclamation
Exit Sub
End If
u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
i = 15
Do While h1.Cells(i, "C") <> ""
'datos de cabecera
h2.Cells(u2, "A") = h1.[H9] 'categoría
h2.Cells(u2, "B") = h1.[H7] 'fecha emisión
h2.Cells(u2, "C") = h1.[G5] 'factrura
h2.Cells(u2, "D") = h1.[H5] 'de compra
h2.Cells(u2, "E") = h1.[H8] 'atención
'
'continuar en esta parte con los demás datos
'
'datos de detalle
H2.Cells(u2, "K") = h1. Cells(i, "C") 'num fila
h2.Cells(u2, "L") = h1. Cells(i, "D") 'cant
h2.Cells(u2, "M") = h1. Cells(i, "E") 'cant
h2.Cells(u2, "N") = h1. Cells(i, "F") 'desc
h2.Cells(u2, "O") = h1. Cells(i, "G") 'pu
h2.Cells(u2, "P") = h1. Cells(i, "H") 'importe
'
'datos de resumen
h2.Cells(u2, "Q") = h1.[H37] 'sub total
h2.Cells(u2, "R") = h1.[H38] 'iva
'
'Busca TOTAL
Set b = h1.Columns("G").Find("T O T A L", lookat:=xlWhole)
If Not b Is Nothing Then
h2.Cells(u2, "S") = h1.Range("H" & b.Row) 'total
End If
'
u2 = u2 + 1
i = i + 1
Loop
l2.Save 'guarda el libro2
l2.Close 'cierra el libro2
MsgBox "Datos Registrados"
End Sub
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
.
De cualquier forma, avísame cualquier duda.
.