¿Como simplificar mi macro ? Es un poco extensa y creo que es por eso que se tarda un poco en realizar su función.

Explico mi situacion tengo un macro que elabore gracias a la ayuda de los experto de esta pagina, pero creo que es muy extensa tarda un poco en realizar su funcion. Por eso quisiera simplificarla o acelerarla si se puediera

Tengo una hoja con nombre de "formato pedido" es un formato de nota de venta donde viene datos como fecha n° de cliente, cantidad, producto, precio, etc. Esos datos los voy guardando en una hoja que se llama "registro de notas" se va guardando en forma de lista, esa es la funcion de mi macro. Aqui dejo mi macro para analizar

sub registrodenotas()

inewrow = sheets("registro de notas").range("a" & (2 ^ 20)).end(xlup).row + 1

sheets("registro de notas").range("a" & inewrow) = sheets("formato pedido").range("l1").value

sheets("registro de notas").range("b" & inewrow) = sheets("formato pedido").range("l2").value

sheets("registro de notas").range("c" & inewrow) = sheets("formato pedido").range("l3").value

sheets("registro de notas").range("d" & inewrow) = sheets("formato pedido").range("d3").value

sheets("registro de notas").range("e" & inewrow) = sheets("formato pedido").range("d4").value

sheets("registro de notas").range("f" & inewrow) = sheets("formato pedido").range("d5").value

sheets("registro de notas").range("g" & inewrow) = sheets("formato pedido").range("d6").value

sheets("registro de notas").range("h" & inewrow) = sheets("formato pedido").range("j6").value

sheets("registro de notas").range("i" & inewrow) = sheets("formato pedido").range("a9").value

sheets("registro de notas").range("j" & inewrow) = sheets("formato pedido").range("b9").value

sheets("registro de notas").range("k" & inewrow) = sheets("formato pedido").range("d9").value

sheets("registro de notas").range("l" & inewrow) = sheets("formato pedido").range("e9").value

sheets("registro de notas").range("m" & inewrow) = sheets("formato pedido").range("f9").value

sheets("registro de notas").range("n" & inewrow) = sheets("formato pedido").range("g9").value

sheets("registro de notas").range("o" & inewrow) = sheets("formato pedido").range("h9").value

sheets("registro de notas").range("p" & inewrow) = sheets("formato pedido").range("j9").value

sheets("registro de notas").range("q" & inewrow) = sheets("formato pedido").range("l9").value

sheets("registro de notas").range("r" & inewrow) = sheets("formato pedido").range("a10").value

sheets("registro de notas").range("s" & inewrow) = sheets("formato pedido").range("b10").value

sheets("registro de notas").range("t" & inewrow) = sheets("formato pedido").range("d10").value

sheets("registro de notas").range("u" & inewrow) = sheets("formato pedido").range("e10").value

sheets("registro de notas").range("v" & inewrow) = sheets("formato pedido").range("f10").value

sheets("registro de notas").range("w" & inewrow) = sheets("formato pedido").range("g10").value

sheets("registro de notas").range("x" & inewrow) = sheets("formato pedido").range("h10").value

sheets("registro de notas").range("y" & inewrow) = sheets("formato pedido").range("j10").value

sheets("registro de notas").range("z" & inewrow) = sheets("formato pedido").range("l10").value

sheets("registro de notas").range("jd" & inewrow) = sheets("formato pedido").range("l55").value

sheets("registro de notas").range("je" & inewrow) = sheets("formato pedido").range("j57").value

sheets("registro de notas").range("jf" & inewrow) = sheets("formato pedido").range("d3").value

end sub

Corte mas de la mitad porque no entraba en el cuadro de pregunta. Pero si me dan la idea con la que esta sombreado me facilitaria con los demas

1 respuesta

Respuesta
1

[Hola 

Te paso la macro, lo completas para el resto.

Valora la respuesta para finalizar saludos!

Sub registrodenotas()
'***Act. Por Adriel Ortiz
'
'
Application.ScreenUpdating = False
Set h1 = Sheets("formato pedido")       'Hoja1
Set h2 = Sheets("registro de notas")    'Hoja2
'ultima fila
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
h2.Cells(u, "A") = h1.Range("L1")
h2.Cells(u, "B") = h1.Range("L2")
h2.Cells(u, "C") = h1.Range("L3")
h2.Cells(u, "D") = h1.Range("D3")
h2.Cells(u, "E") = h1.Range("D4")
h2.Cells(u, "f") = h1.Range("D5")
h2.Cells(u, "G") = h1.Range("D6")
h2.Cells(u, "H") = h1.Range("J6")
'
'Aquí para el resto
'
'
Application.ScreenUpdating = True
MsgBox "datos copiados"
End Sub

Hola, adriel ortiz ya elabore la macro basando el ejemplo que me pasaste pero me marca error al momento de ejecutar macro, dice error de compilación: error de sintaxis. Me marca de rojo los siguientes

h2.Cells(u, "A") = h1.Range("L1")

[hola 

Asegúrate que el nombre de la hoja1 y hoja2 este escrito correctamente, si persiste me idicas que dice en el error que te muestra

¡Gracias!  Lo voy a checar mañana en la tarde o lunes, no se si  tiene que ver por mayúscula los nombre de las hojas están en mayúscula y en la macro las puse en minúscula ha de ser eso checo y te aviso por lo mientra muchas  gracias por la atención y interés que pones en mi pregunta. 

Buen día adriel, nuevamente yo molestándote ya revise mi macro pero me marca error

Y dice que se ha producido error 424 en tiempo de ejecución, se requieren objeto

Envíame tu archivo [email protected] para revisar los procesos saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas