Selección de rangos en una macro de Excel

28/08/2007 - 21:34 por miguel p | Informe spam
Como debo hacer para seleccionar un rango de celdas, mediante códigos de
Visual Basic, dentro de una macro que maneja la selección. El objeto es poder
copiar el conjunto de celdas para poder trasladarlo a otro lugar de la hoja
de Excel.
No te des por vencido
 

Leer las respuestas

#1 Ivan
28/08/2007 - 22:46 | Informe spam
Como debo hacer para seleccionar un rango de celdas, mediante códigos de
Visual Basic, dentro de una macro que maneja la selección. El objeto es poder
copiar el conjunto de celdas para poder trasladarlo a otro lugar de la hoja
de Excel.




hola Miguel,

si el unico motivo de seleccionar las celdas es el que expones (copiar
el rango) no es necesrio hacerlo (seleccionarlas). En practicamente el
¿99%? de los casos no es necesario andar seleccionando rangos, hojas,
libros u objetos en general para trabajar con ellos

pej. para copiar el rango de celdas "A2:C15" de la hoja activa y
pegarlo en otra hoja llamada por ej "Otra" a partir de la primera
celda libre de la columna A podrias hacer algo parecido a esto=>>

Range("a2:c15").Copy _
Worksheets("Otra").Range("a65536").End(xlUp).Offset(1)

esto te pegaria todo (formulas, formatos, etc), si por ej solo deseas
pegar los valores podrias hacer algo parecido a esto=>

Range("a2:c15").Copy
Worksheets("Otra").Range("a65536").End(xlUp) _
.Offset(1).PasteSpecial xlPasteValues


OJO: fijate que en el 1er caso va todo en una linea (aqui lo he
partido con un guion bajo de continuacion de linea para evitar
rupyuras en el foro), es decir detras de 'Copy' iria un espacio y a
continuacion el destination (Whorksheets(tal).., pero en el segundo
caso, con pastespecial va en dos filas diferentes

en cuanto a seleccionar un rango, una vez asegurado de que la hoja que
lo contiene es la activa, te bastaria con algo asi=>

Range("A2:C15").Select

y para trabajar con el podrias usar pej para este mismo caso

Range("a2:c15").Select
Selection.Copy
Worksheets("Otra").Range("a65536").End(xlUp) _
.Offset(1).PasteSpecial xlPasteValues

espero te ayude

un saludo
Ivan

Preguntas similares