Copiar Y Pegar Diferentes Rangos A La Vez

Deivid

Board Regular
Joined
Jan 11, 2008
Messages
56
Hola a todos. Tengo dos hojas: HojaOrigen y HojaDestino. Quiero pasar varios rangos a la vez de la HojaOrigen a HojaDestino. Pero no me deja COPIAR varios rangos a la vez. Como lo hago? Me han comentado algo de los ARRAYS pero no se como.

Code:
Sub Pasa_Datos()
Dim fecha, Fecha2, I, I2, Encontrado, Encontrado2, mensaje
Encontrado = False
Encontrado2 = False
I = 16
Y = 24
fec = InputBox("Indica fecha para pasar los Datos: (dd-mm-aa)", "Pasar Datos diarios a Glade Furnace Data")
'Si Fec es igual a vacio(cancelar) entonces se sale de la macro
If fec = "" Then End
 
fecha = FormatDateTime(fec, vbShortDate)
Fecha2 = fecha
Do While ((Range("A" & I) <> "") And Not (Encontrado))
If (FormatDateTime(Range("A" & I).Value, vbShortDate) = fecha) Then
Encontrado = True
Else
I = I + 3
End If
Loop
If Not (Encontrado) Then
mensaje = MsgBox("Error en la fecha. Comprueba que la fecha sea correcta.", vbOKOnly, "FECHA ERRONEA")
Else
******************************************************************************** 
Range("D" & I & ":F" & I).Select
Range("G" & I & "J" & I).Select
Range("L" & I & "Q" & I).Select '''''''''''''''''''''''''''''''' AQUI ESTA MI PROBLEMA. Me gustaria seleccionar
Selection.Copy ''''''''''''''''''''''''''''''' todos los rangos a la vez. 
********************************************************************************
'Abre HojaDestino
On Error GoTo 0
Workbooks.Open ("D:\EXCEL\PLANILLAS\HojaDestino.xls")
Windows("HojaDestino.xls").Activate
Sheets("Datos").Select
Do While Range("A" & Y).Value <> "" And FormatDateTime(Range("A" & Y).Value, vbShortDate) <> Fecha2
Y = Y + 1
Loop
 
If FormatDateTime(Range("A" & Y).Value, vbShortDate) = Fecha2 Then
Range("AZ" & Y).Select
End If
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
Windows("HojaOrigen.xls").Activate
Application.CutCopyMode = False
mensaje = MsgBox("Los datos se han pasado correctamente.", vbInformation, "PROCESO DE DATOS")
 
End If
 
End Sub
 
Last edited by a moderator:
Deivid,

Es último que puse fue un ejemplo de lo que recomendó Caliche y como digo no funciona. El destino en r.copy range("e2") podía haber sido cualquier rango y siempro hubiera tirado un error porque r es un rango de areas múltiples.

Para ver como hacerlo de forma bien vea lo que puse con el nombre de "Pasa_Datos" aunque como digo esto no es el 100% como me gustaría haberle mostrado, pero sí se ofrece varios mejoramientos.

Si no has dado cuenta (por lo general) no soy el tipo de persona quien le da respuesto entero sino trato de dar suficientes pistas para que la persona preguntas pueda - con un poco de estudio y experimentación - encontrar la solución.

Saludos,
 
Upvote 0

Excel Facts

Quick Sum
Select a range of cells. The total appears in bottom right of Excel screen. Right-click total to add Max, Min, Count, Average.

Forum statistics

Threads
1,223,978
Messages
6,175,755
Members
452,667
Latest member
vanessavalentino83

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top