Saltar al contenido

Error en macro que copia, pega y organiza datos.


anapcg007

Recommended Posts

publicado

Hola, intenté escribir en el tema "Copiar rango y pegar en la columna siguiente disponible" pero estaba "cerrado por abandono", primeramente, muchas gracias a Marco Antonio pues fue el quien me proporcionó una macro que me ayudó mucho y si no había comentado fue por que estaba trabajando la macro, personalizandola a mis diferentes rangos y columnas, lo cual ha funcionado muy bien.

El código que me proporcionó Marco Antonio es el siguiente:

Sub VaciarDatos()
For y = 16 To 27 'Rango O:AA
If Trim(Cells(8, y)) = Empty Then
'Rango O:AA
c = Split(Cells(8, y).Address, "$")(1)
Range(c & "8:" & c & "20").Value = Range("O8:O20").Value
Range(c & "25:" & c & "37").Value = Range("O25:O37").Value
'Rango AE:AP
c = Split(Cells(8, y + 15).Address, "$")(1)
Range(c & "8:" & c & "20").Value = Range("AD8:AD20").Value
Range(c & "25:" & c & "37").Value = Range("AD25:AD37").Value
Exit For
End If
Next
Range("E8:H20, E25:H37,E42:H48").ClearContents
Range("B5").Select
End Sub[/CODE]

Y ahora yo ya lo he personalizado, agregando un paso más a esta macro (copiar y pegar valores en rango W), y agregué otra macro sencilla copiar y pegar fórmulas igualmente en un rango fijo.

Sin embargo a la hora de correr la macro principal "Vaciar Datos", todo corre bien sin errores, sin embargo en vez de copiar y pegar los datos en la columna del mes vacío los pega en la columna Z.

Adicionalmente, ¿hay algún condicional o parámetro que se pueda utilizar para que cuando yo ponga el mes en una celda por ejemplo A1, la macro copie y pegue los datos en la columna del mes escrito en la celda A1 y claro que en la columna del mes al correr la macro, se borren los datos anteriores.

Esta es la macro que estoy usando ahora, adjunto archivo para mayor referencia y de antemano muchas gracias por su apoyo.

[CODE]Sub VaciarDatos()
For y = 26 To 38 'Rango AA:AN
If Trim(Cells(8, y)) = Empty Then 'Mes vacío
'Rango AA:AN
c = Split(Cells(8, y).Address, "$")(1)
Range(c & "8:" & c & "18").Value = Range("AA8:AA18").Value
Range(c & "23:" & c & "35").Value = Range("AA23:AA35").Value
'Rango AE:AP
c = Split(Cells(8, y + 15).Address, "$")(1)
Range(c & "8:" & c & "18").Value = Range("AP8:AP18").Value
Range(c & "23:" & c & "35").Value = Range("AP23:AP35").Value
Exit For
End If
Next
Range("W8:Y18").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues

Range("W23:y35").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues

Range("G8:P18, G23:P35,G40:P47").ClearContents
Range("B5").Select

End Sub[/CODE]

La otra macro que uso para copiar y pegar formulas, es la siguiente, es sólamente informativo pues con esta macro no tengo ningún problema:

[CODE]Sub Macro3()
'
' Macro3 Macro
'

'
Range("R8:T18").Select
Selection.Copy
Range("W8").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("R23:T35").Select
Application.CutCopyMode = False
Selection.Copy
Range("W23").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("W20").Select
Application.CutCopyMode = False
End Sub
[/CODE]

No me permite subir el archivo con macros habilitadas o en excel 2010, así que lo subo en formato 2007.

Duda Excel Total.xls

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.