Te anexo la macro actualizada, no importa si es texto o número la macro lo resuelve.
Sub CopiarPedido()
'Por.Dante Amor
Application.ScreenUpdating = False
Set h1 = Sheets("Pedido")
Set h2 = Sheets("Base")
u = h2.Range("E" & Rows.Count).End(xlUp).Row
If u = 3 Then u = 4 Else u = u + 2
'
If h1.[H4] = "" Then
MsgBox "Falta el número de pedido"
Exit Sub
End If
'
If h1.[C12] = "" Then
MsgBox "Falta el código"
Exit Sub
End If
'
'Calcular el nuevo número
num = h1.[H4]
If InStr(1, num, "-") > 0 Then
nums = Split(num, "-")
nvo = nums(1) + 1
num = nums(0) & "-" & Format(nvo, "000000")
Else
num = num + 1
End If
'
h2.Cells(u, "B") = h1.[H4] 'num pedido
h2.Cells(u, "C") = h1.[C9] 'Fecha
h2.Cells(u, "D") = h1.[D9] 'Clinte
h2.Cells(u, "K") = h1.[G9] 'Fec entrega
h2.Cells(u, "L") = h1.[H9] 'Forma entrega
For i = 12 To h1.Range("C" & Rows.Count).End(xlUp).Row
If h1.Cells(i, "C") <> "" Then
h2.Cells(u, "E") = h1.Cells(i, "C") 'Código
h2.Cells(u, "F") = h1.Cells(i, "D") 'Desc
h2.Cells(u, "G") = h1.Cells(i, "E") 'Cantidad
h2.Cells(u, "H") = h1.Cells(i, "F") 'Marca
h2.Cells(u, "I") = h1.Cells(i, "G") 'Armado
h2.Cells(u, "J") = h1.Cells(i, "H") 'Obs
u = u + 1
Else
Exit For
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
'
'Imprimir
h1.PrintOut Copies:=2
'Borrar datos
h1.[C9] = "" 'Fecha
h1.[D9] = "" 'Clinte
h1.[G9] = "" 'Fec entrega
h1.[H9] = "" 'Forma entrega
h1.Range("C12:H" & i).ClearContents
'Nuevo número
h1.[H4] = num
MsgBox "Pedido copiado"
End Sub
‘
S a l u d o s . D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s