Saltar al contenido

Copiar una fila de excel a otro archivo excel incrementalmente tras ejecutar Macro


derafa

Recommended Posts

publicado

Hola,

he ido leyendo varios hilos pero ninguno contesta exactamente a lo que quiero hacer.

Tengo cientos de archivos excel, cada uno de ellos con una sóla columna, a los que les tengo que aplicar varias funciones estadísticas, siempre las mismas. Como es hiper reiterativo, he creado una macro. Así pues, al ejecutarlo, el resultado me aparece en la fila (A1:A20) es decir 20 datos. Esos datos interminablemente los tengo que copiar y pegar en otra hoja excel, e ir añadiéndolos en filas incrementales (fila A1, A2, ....Aenésima)

Me estoy desesperando.

Alguién me puede pasar un pequeño código para que al terminar el primer macro me copie directamente los datos de la fila (A1:A20) al otro archivo excel, o a un txt que luego pase a excel, para finalmente tener un archivo excel con los cientos de filas (A1:A20) donde posteriormente tendré que hacer otras operaciones. Aunque esto ya es problema mío.

Gracias!

Esto lo tengo que hacer con un montón de archivos diferentes y macros diferentes, pongo aquí la macro más sencilla, generado con el record

Sub Macro1()

'

' Macro1 Macro

'

' Keyboard Shortcut: Ctrl+a

'

Range("D1").Select

ActiveCell.FormulaR1C1 = "Elección 1"

Range("E1").Select

ActiveCell.FormulaR1C1 = ""

Range("D1").Select

ActiveCell.FormulaR1C1 = "Eleccion_1"

Range("D2").Select

Columns("D:D").ColumnWidth = 12.14

Range("E1").Select

ActiveCell.FormulaR1C1 = "Eleccion_2"

Rows("1:1").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("D3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(RC[-2]:R[14]C[-2],1)"

Range("D3").Select

Selection.AutoFill Destination:=Range("D3:E3"), Type:=xlFillDefault

Range("D3:E3").Select

Range("D3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R17C2,1)"

Range("D3").Select

Selection.AutoFill Destination:=Range("D3:E3"), Type:=xlFillDefault

Range("D3:E3").Select

Range("E3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R17C2,2)"

Range("E4").Select

Columns("E:E").ColumnWidth = 10.29

Range("D1:E1").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Selection.Merge

ActiveCell.FormulaR1C1 = "Total"

Range("F1:G1").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Selection.Merge

ActiveCell.FormulaR1C1 = "Primer tercio"

Range("F1:G1").Select

Selection.Copy

Range("H1").Select

ActiveSheet.Paste

Range("J1").Select

ActiveSheet.Paste

Range("H1:I1").Select

Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = "Segundo tercio"

Range("J1:K1").Select

ActiveCell.FormulaR1C1 = "Tercer tercio"

Range("D2:E2").Select

Selection.Copy

Range("F2").Select

ActiveSheet.Paste

Range("H2").Select

ActiveSheet.Paste

Range("J2").Select

Columns("F:F").ColumnWidth = 13.71

Columns("G:G").ColumnWidth = 11.86

Range("K3").Select

Columns("H:H").ColumnWidth = 10.57

Range("F2:G2").Select

Application.CutCopyMode = False

Selection.Copy

Range("J2").Select

ActiveSheet.Paste

Columns("D:K").Select

Range("D2").Activate

Selection.ColumnWidth = 11.43

Range("D3:E3").Select

Application.CutCopyMode = False

Selection.AutoFill Destination:=Range("D3:K3"), Type:=xlFillDefault

Range("D3:K3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R7C2,1)"

Range("F3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R7C2,1)"

Range("G3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R7C2,2)"

Range("H3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R8C2:R12C2,1)"

Range("I3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R8C2:R12C2,2)"

Range("J3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R13C2:R17C2,1)"

Range("K3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R13C2:R17C2,2)"

Range("D3").Select

ActiveCell.FormulaR1C1 = "=+COUNTIF(R3C2:R17C2,1)"

Range("N4").Select

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.