Macro para reacomodar columnas en hoja nueva
Estimados, Soy nuevo en esto de las macros. Las hago manualmente y recien estoy viendo algo de VBA. Les paso mi ejemplos que me da error `9 al ejecutarlo.
Tengo un libro, que en una hoja (hoja 1) en el ejemplo, tiene columnas que quiero desocultar y copiar algunas y pegarlas con un nuevo orden en una hoja nueva (hoja2 en el ejemplo). Lo que necesito es generar esta macro para que me sirva para diferentes libros, pero que siempre ejecute estas mismas acciones: desocultar, copiar determinadas columnas de la hoja activa y pegarlas con este nuevo orden en una nueva hoja.
Les pego el desarrollo en VBA de la funciòn que grabé manualmente.
Sub Acomodamiento()
'
' Acomodamiento Macro
' Acomoda columnas según VsTour
'
'
Workbooks.Add
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("A:A").Select
Selection.Copy
Windows("cargaVstour").Activate
Columns("A:A").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("C:J").Select
Range("J1").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("B:B").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.SmallScroll ToRight:=99
Columns("DK:DL").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("J:J").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.ScrollColumn = 1
Columns("K:AO").Select
Range("AO1").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("L:L").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("AP:AP").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AQ:AQ").Select
ActiveSheet.Paste
Range("AR17").Select
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.SmallScroll ToRight:=36
Columns("DF:DF").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AR:AR").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=0
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("DC:DC").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AS:AS").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("AQ:DB").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
ActiveWindow.SmallScroll ToRight:=3
Columns("AT:AT").Select
ActiveSheet.Paste
Range("AY18").Select
ActiveWindow.SmallScroll ToRight:=23
ActiveWindow.ScrollColumn = 1
Rows("1:14").Select
Range("A14").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Application.CutCopyMode = False
Selection.Cut
ActiveWindow.ScrollRow = 69
ActiveWindow.SmallScroll Down:=95
Rows("192:192").Select
ActiveWindow.SmallScroll Down:=105
Rows("300:300").Select
Selection.Insert Shift:=xlDown
ActiveWindow.ScrollRow = 1
End Sub
Al ver otras respuestas de ustedes, seguramente podràn darme una mano. Realmente se aprende mucho en el foro.
De antemano, Muchas gracias!!!!
Abz.
alejandro.-
Tengo un libro, que en una hoja (hoja 1) en el ejemplo, tiene columnas que quiero desocultar y copiar algunas y pegarlas con un nuevo orden en una hoja nueva (hoja2 en el ejemplo). Lo que necesito es generar esta macro para que me sirva para diferentes libros, pero que siempre ejecute estas mismas acciones: desocultar, copiar determinadas columnas de la hoja activa y pegarlas con este nuevo orden en una nueva hoja.
Les pego el desarrollo en VBA de la funciòn que grabé manualmente.
Sub Acomodamiento()
'
' Acomodamiento Macro
' Acomoda columnas según VsTour
'
'
Workbooks.Add
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("A:A").Select
Selection.Copy
Windows("cargaVstour").Activate
Columns("A:A").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("C:J").Select
Range("J1").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("B:B").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.SmallScroll ToRight:=99
Columns("DK:DL").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("J:J").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.ScrollColumn = 1
Columns("K:AO").Select
Range("AO1").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("L:L").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("AP:AP").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AQ:AQ").Select
ActiveSheet.Paste
Range("AR17").Select
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
ActiveWindow.SmallScroll ToRight:=36
Columns("DF:DF").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AR:AR").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=0
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("DC:DC").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Columns("AS:AS").Select
ActiveSheet.Paste
Windows("Copia de PRUEBA A VISTA DEL VENDEDOR.xls").Activate
Columns("AQ:DB").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
ActiveWindow.SmallScroll ToRight:=3
Columns("AT:AT").Select
ActiveSheet.Paste
Range("AY18").Select
ActiveWindow.SmallScroll ToRight:=23
ActiveWindow.ScrollColumn = 1
Rows("1:14").Select
Range("A14").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Application.CutCopyMode = False
Selection.Cut
ActiveWindow.ScrollRow = 69
ActiveWindow.SmallScroll Down:=95
Rows("192:192").Select
ActiveWindow.SmallScroll Down:=105
Rows("300:300").Select
Selection.Insert Shift:=xlDown
ActiveWindow.ScrollRow = 1
End Sub
Al ver otras respuestas de ustedes, seguramente podràn darme una mano. Realmente se aprende mucho en el foro.
De antemano, Muchas gracias!!!!
Abz.
alejandro.-