Ayuda en Inicio y Fin de un Rango con MACRO.

09/02/2009 - 21:46 por De_Corando. | Informe spam
Necesito una ayuda de ustedes
La he buscado en estos y dbates y no encuentro algo parecido.

Quiero transpasar de la Hoja de DATOS, el Rango B9 al E59,
a la Hoja de INFORME los 50 renglones y 4 columnas contenidos en ese
Rango,
en el siguiente renglon disponible en blanco a partir del la celda
G10
de la Hoja INFORME.
El macro que expongo me ayuda con el primer renglon de B9 a E9, y si
lo copio
y le cambio el renglon o Rango B10, me da el segundo renglon de B10 a
E10.

El macro me transcribe los datos, OJO no copia ni pega el
contenido,'ESCRIBE"
Pero resulta muy laborioso poner los 50 o 100 renglones, en este caso,
lo que
busco es la manera de indicar cual es el Rango que me trascriba sin
necesidad
de poner renglon por renglon. Le he puesto nombre al rango y no
funciona.

Sub Trasladar()
Worksheets("INFORME"). Activate
Range("G10"). Select
Do While Not IsEmpty(ActiveCell)
ActiveCell. Offset(1, 0). Activate
Loop
ActiveCell. Offset(0, 0) = Sheets("DATOS"). Range("B9")
ActiveCell. Offset(0, 1) = Sheets("DATOS"). Range("C9")
ActiveCell. Offset(0, 2) = Sheets("DATOS"). Range("D9")
ActiveCell. Offset(0, 3) = Sheets("DATOS"). Range("E9")

Range("G10"). Select
Do While Not IsEmpty(ActiveCell)
ActiveCell. Offset(1, 0). Activate
Loop
ActiveCell. Offset(0, 0) = Sheets("DATOS"). Range("B10")
ActiveCell. Offset(0, 1) = Sheets("DATOS"). Range("C10")
ActiveCell. Offset(0, 2) = Sheets("DATOS"). Range("D10")
ActiveCell. Offset(0, 3) = Sheets("DATOS"). Range("E10")

End
End Sub

NOTA No busco hacer una copia del rango y pegar
en otra hoja, solo transcribir el contenido.

Se que puedo aprender mas, cuestion de tiempo.
Agradezco el tiempo que se tomen en estudiar el caso.

Corando Garza
 

Leer las respuestas

#1 Héctor Miguel
09/02/2009 - 22:56 | Informe spam
hola, Corando !

el siguiente ejemplo "asume" que (cuando menos la primera vez) la celda G9 de la hoja "informe" NO esta vacia
las siguientes veces traslada los datos "a la siguiente fila libre"
no estoy seguro de si te sea de utilidad usar la propiedad ".CurrentRegion" en ves del rango "determinado" (b9:e59) -???-

Sub Trasladar()
With Worksheets("datos").Range("b9").CurrentRegion
Worksheets("informe").Range("g65536").End(xlUp) _
.Offset(1).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
La he buscado en estos y dbates y no encuentro algo parecido.
Quiero transpasar de la Hoja de DATOS, el Rango B9 al E59, a la Hoja de INFORME
los 50 renglones y 4 columnas contenidos en ese Rango,
en el siguiente renglon disponible en blanco a partir del la celda G10 de la Hoja INFORME.
El macro que expongo me ayuda con el primer renglon de B9 a E9
y si lo copio y le cambio el renglon o Rango B10, me da el segundo renglon de B10 a E10. ...

El macro me transcribe los datos, OJO no copia ni pega el contenido,'ESCRIBE"
Pero resulta muy laborioso poner los 50 o 100 renglones, en este caso
lo que busco es la manera de indicar cual es el Rango que me trascriba sin necesidad de poner renglon por renglon.
Le he puesto nombre al rango y no funciona.

Sub Trasladar()
Worksheets("INFORME"). Activate
Range("G10"). Select
Do While Not IsEmpty(ActiveCell)
ActiveCell. Offset(1, 0). Activate
Loop
ActiveCell. Offset(0, 0) = Sheets("DATOS"). Range("B9")
ActiveCell. Offset(0, 1) = Sheets("DATOS"). Range("C9")
ActiveCell. Offset(0, 2) = Sheets("DATOS"). Range("D9")
ActiveCell. Offset(0, 3) = Sheets("DATOS"). Range("E9")
Range("G10"). Select
Do While Not IsEmpty(ActiveCell)
ActiveCell. Offset(1, 0). Activate
Loop
ActiveCell. Offset(0, 0) = Sheets("DATOS"). Range("B10")
ActiveCell. Offset(0, 1) = Sheets("DATOS"). Range("C10")
ActiveCell. Offset(0, 2) = Sheets("DATOS"). Range("D10")
ActiveCell. Offset(0, 3) = Sheets("DATOS"). Range("E10")
End
End Sub

NOTA No busco hacer una copia del rango y pegar en otra hoja, solo transcribir el contenido...

Preguntas similares