Macro Excel, modificar

Tengo datos en 12 columnas de la "A" a la "L" en la hoja "fuente"

1. En la columna "L" de la hoja "fuente" tengo una formula, quiero que copie los datos y no la formula

2. La macro copia datos en dos hojas

"CABECERA" Y "DETALLE"

Los datos de la columna "L" de la hoja datos quiero que los copie en la columna "G" de la hoja "CABECERA"

Los datos de la columna "L" de la hoja datos quiero que los copie en la columna "O" de la hoja "DETALLE"

3. En la hoja datos quiero agregar datos en 5 columnas de la "M a la "Q" con el objeto de utilizar estos datos en las hojas "CABECERA" Y "DETALLE"

En la columna "M" de la hoja "fuente" irían los datos de la columna "I" de la hoja "CABECERA"

En la columna "N" de la hoja "fuente" irían los datos de la columna "J" de la hoja "CABECERA"

La macro copia los datos de la columna "K" de la hoja "fuente" en la columna "D" de la hoja "CABECERA"

Quiero que copie los datos de la columna "K" de la hoja "fuente" en la columna "Q" de la hoja "DETALLE"

4. Quiero que en lugar de tener dos secuencias tenga 3 para ello quiero que la macro en lugar de insertar dos lineas inserte 3

¿Que cambios debo hacer?

El código de la macro que deseo modificar es el siguiente

Sub GENERAR()
'
' GENERAR Macro
'
' Acceso directo: CTRL+r
'
'Dim X As Integer
Sheets("DATOS").Select
'X = 0
Range("A2").Select
Do Until IsEmpty(ActiveCell)
 Selection.Copy
 Sheets("CABECERA").Select
 Range("A2").Select
 ActiveSheet.Paste
 Range("B2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 1).Select
 Selection.Copy
 Sheets("CABECERA").Select
 ActiveSheet.Paste
 Range("C2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 1).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("CABECERA").Select
 ActiveSheet.Paste
 Range("D2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 8).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("CABECERA").Select
 ActiveSheet.Paste
 Range("E2").Select
 ActiveCell.FormulaR1C1 = "F"
 Range("F2").Select
 ActiveCell.FormulaR1C1 = "0"
 Range("G2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 1).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("CABECERA").Select
 ActiveSheet.Paste
 Range("H2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, -3).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("CABECERA").Select
 ActiveSheet.Paste
 Range("I2").Select
 ActiveCell.FormulaR1C1 = "V"
 Range("J2").Select
 ActiveCell.FormulaR1C1 = "S"
 Range("A2:B2").Select
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("C2").Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "0001"
 Range("D2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, -6).Select
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("E2").Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "522103"
 Range("F2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 3).Select
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("G2").Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "H"
 Range("H2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 3).Select
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("I2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, -5).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("J2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 1).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("D2").Select
 Application.CutCopyMode = False
 Selection.Copy
 Range("K2").Select
 ActiveSheet.Paste
 Range("M2").Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = " " 'PARA CAMBIAR AREA
 Range("N2").Select
 ActiveCell.FormulaR1C1 = "S"
 Range("O2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, 7).Select
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("A2:B2").Select
 Application.CutCopyMode = False
 Selection.Copy
 Range("A3").Select
 ActiveSheet.Paste
 Range("C3").Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "0002"
 Range("D2").Select
 Selection.Copy
 Range("D3").Select
 ActiveSheet.Paste
 Range("E3").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, -2).Select
 Application.CutCopyMode = False
 Selection.Copy
 Sheets("DETALLE").Select
 ActiveSheet.Paste
 Range("F2").Select
 Application.CutCopyMode = False
 Selection.Copy
 Range("F3").Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
 Range("G3").Select
 ActiveCell.FormulaR1C1 = "D"
 Range("H2").Select
 Selection.Copy
 Range("H3").Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
 Range("I2").Select
 Selection.Copy
 Range("I3").Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
 Range("J2").Select
 Selection.Copy
 Range("J3").Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
 Range("K2").Select
 Selection.Copy
 Range("K3").Select
 ActiveSheet.Paste
 Application.CutCopyMode = False
 Range("M3").Select
 ActiveCell.FormulaR1C1 = " "
 Range("N3").Select
 ActiveCell.FormulaR1C1 = "S"
 Range("O2").Select
 Selection.Copy
 Range("O3").Select
 ActiveSheet.Paste
 Rows("2:2").Select
 Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 Range("A2").Select
 Sheets("CABECERA").Select
 Rows("2:2").Select
 Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 Range("A2").Select
 Sheets("DATOS").Select
 ActiveCell.Offset(0, -9).Select
 ActiveCell.Offset(1, 0).Select
Loop
End Sub

Gracias por su ayuda

Añade tu respuesta

Haz clic para o