Te anexo el código
Sub Editar_Datos()
'Por.Dante Amor
'
Set h1 = Sheets("EDICIÓN")
Select Case h1.Range("A5")
Case "ORDEN DE COMPRA"
Set h3 = Sheets("REPORTE OC")
Set h4 = Sheets("DETALLE OC")
Case "ORDEN DE SERVICIO"
Set h3 = Sheets("REPORTE OS")
Set h4 = Sheets("DETALLE OS")
Case "FUNCIONAMIENTO"
Set h3 = Sheets("REPORTE NOM")
Set h4 = Sheets("DETALLE NOM")
Case Else
MsgBox "Revisa el tipo de orden en la celda A5"
Exit Sub
End Select
'
n_orden = h1.[K1]
If n_orden = "" Then
MsgBox "Falta el número de orden"
Exit Sub
End If
'
Set b = h3.Columns("A").Find(n_orden, lookat:=xlWhole)
If b Is Nothing Then
MsgBox "El número de orden no existe"
Exit Sub
End If
'
'PARA EL REPORTE
fila = b.Row
h3.Cells(fila, 3).Value = h1.Range("L118")
h3.Cells(fila, 4).Value = h1.Range("A11")
h3.Cells(fila, 5).Value = h1.Range("C13")
h3.Cells(fila, 6).Value = h1.Range("B6")
h3.Cells(fila, 7).Value = h1.Range("B7")
h3.Cells(fila, 8).Value = h1.Range("B9")
h3.Cells(fila, 9).Value = h1.Range("B8")
'
'CODIGO PARA EL DETALLE OC
u = h4.Range("A" & Rows.Count).End(xlUp).Row
'Borrar los registros anteriores
For j = u To 9 Step -1
largo = Len(n_orden)
If Val(Right(h4.Cells(j, "A"), largo)) = n_orden Then
h4.Rows(j).Delete
End If
Next
'
i = 15
u = h4.Range("A" & Rows.Count).End(xlUp).Row + 1
Do While h1.Cells(i, "A") <> ""
h4.Cells(u, 1).Value = h1.Cells(i, "M") & n_orden
H4.Cells(u, 2).Value = h1.Cells(i, "M")
H4.Cells(u, 3).Value = h1.Cells(i, "A")
H4.Cells(u, 4).Value = h1.Cells(i, "B")
H4.Cells(u, 5).Value = h1.Cells(i, "D")
H4.Cells(u, 6).Value = h1.Cells(i, "E")
H4.Cells(u, 7).Value = h1.Cells(i, "J")
H4.Cells(u, 8).Value = h1.Cells(i, "K")
H4.Cells(u, 9).Value = h1.Cells(i, "L")
'
u = u + 1
i = i + 1
Loop
MsgBox "LA " & h1.Range("A5").Value & " FUE CREADA EXITOSAMENTE!", , "Dirección de Administración y Presupuesto"
ActiveWorkbook.Save
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias