Macros de excel
Hola cmera:
Tengo una preguntas que hacer que espero y confío que Usted me pueda ayudar a resolver. Estoy haciendo unas macros en Excel, para automatizar algunas tareas, pero tengo unos enormes inconvenientes. Una de las macros copia 18 celdas que no son consecutivas de un libro origen (que para mi caso se llama Tablas G&C) y las copia en un libro de destino (llamado Resumen) en un orden diferente al que se encuentran en el libro de origen. Resulta que necesito que esa macro, copie las mismas celdas pero no solo del libro de origen llamado Tablas G&C, sino que sea capaz de copiarlas de cualquier otro libro, y que las pegue no solo en el libro Resumen, sino en cualquier otro libro. No sé cómo se hace para que la macro sea capaz de ejecutarse desde cualquier libro y no solamente desde los libros mencionados. Lo curioso es que he hecho otras macros de menor complejidad, como por ejemplo, señalar determinado grupo de casillas y darle un formato específico y esa macro sí funciona EN CUALQUIER LIBRO, a diferencia de la que estoy necesitando, que solo opera entre Tablas G&C y Resumen. Pregunto, ¿se puede hacer lo que necesito hacer?, si es así, ¿cómo se hace?. ¿Cómo hago para que la macro sea capaz de ejecutarse desde y hacia cualquier libro.
Espero que pueda Usted ayudarme con este problema al que me estoy enfrentando.
De antemano, mil gracias por su valiosa ayuda.
Desde Colombia,
Juan Pablo Gómez
P.D.: El texto de la macro (por si sirve de algo), es el siguiente.
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(2, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(1, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(-4, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(10, -2).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS...
Tengo una preguntas que hacer que espero y confío que Usted me pueda ayudar a resolver. Estoy haciendo unas macros en Excel, para automatizar algunas tareas, pero tengo unos enormes inconvenientes. Una de las macros copia 18 celdas que no son consecutivas de un libro origen (que para mi caso se llama Tablas G&C) y las copia en un libro de destino (llamado Resumen) en un orden diferente al que se encuentran en el libro de origen. Resulta que necesito que esa macro, copie las mismas celdas pero no solo del libro de origen llamado Tablas G&C, sino que sea capaz de copiarlas de cualquier otro libro, y que las pegue no solo en el libro Resumen, sino en cualquier otro libro. No sé cómo se hace para que la macro sea capaz de ejecutarse desde cualquier libro y no solamente desde los libros mencionados. Lo curioso es que he hecho otras macros de menor complejidad, como por ejemplo, señalar determinado grupo de casillas y darle un formato específico y esa macro sí funciona EN CUALQUIER LIBRO, a diferencia de la que estoy necesitando, que solo opera entre Tablas G&C y Resumen. Pregunto, ¿se puede hacer lo que necesito hacer?, si es así, ¿cómo se hace?. ¿Cómo hago para que la macro sea capaz de ejecutarse desde y hacia cualquier libro.
Espero que pueda Usted ayudarme con este problema al que me estoy enfrentando.
De antemano, mil gracias por su valiosa ayuda.
Desde Colombia,
Juan Pablo Gómez
P.D.: El texto de la macro (por si sirve de algo), es el siguiente.
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(2, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(1, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(-4, 0).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(10, -2).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS G&C.xls").Activate
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Copy
Windows("RESUMEN.XLS").Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Windows("TABLAS...
Respuesta de César Mera
1