Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Script para seleccionar celdas

1,662 views
Skip to first unread message

R. C.

unread,
Jul 22, 2004, 10:29:46 AM7/22/04
to

Tengo un problemilla, hay una parte de una macro en Excel que no consigo
hacer, y se que es una tontería, me explico.

En un momento, hay seleccionadas dos celdas, una y la inmediatamente
inferior. Quisiera conseguir introducir algo en el script que cambiase la
selección por las dos celdas situadas inmediatamente a la izquierda de
estas, por ejemplo:

Estando seleccionado G3:G4 que pasase a tener seleccionado F3:F4

Es posible??

Muchas gracias.

--
Ramón Cano

Unidad de Investigación de Accidentes y Dinámica Vehicular
INSIA
Campus Sur UPM - Ctra. Valencia km.7
28031, Madrid
Tlfn: 630.78.24.64 / 91.336.53.35
Fax: 91.336.53.02


Héctor Miguel

unread,
Jul 22, 2004, 11:58:26 AM7/22/04
to
hola, R. C. !

> ... parte de una macro ... hay seleccionadas dos celdas ... que cambiase ... por las dos celdas ... a la izquierda [...]

para 'desplazar' la referencia a un rango [ya sea para 'trabajar' con el nuevo o cambiar la seleccion]...
usa la propiedad offset(filas_a_desplazar, columnas_a_desplazar) de un objeto rango [p.e.]
Selection.Offset(, -1).Select

saludos,
hector.

R. C.

unread,
Jul 23, 2004, 3:53:58 AM7/23/04
to
Hola 'Héctor Miguel'


Muchas gracias, Héctor, al final lo hice con esta instrucción:

ActiveCell.Offset(0, -1).Range("A1:A2").Select

Héctor Miguel

unread,
Jul 23, 2004, 4:21:41 AM7/23/04
to
hola, Ramón !

> ... al final lo hice con esta instruccion: ActiveCell.Offset(0, -1).Range("A1:A2").Select

solo para 'complementar' las diferencias en el 'accionar' de ambas 'formas'...
1.- la que te habia 'propuesto' [segun lo que solicitabas] =>Selection.Offset(, -1).Select<=
siempre 'cambia' la seleccion activa, desplazandola una columna a la izquierda
'manteniendo' el mismo numero de celdas [sin importar si es una sola o un rango]
2.- la que finalmente estas usando =>ActiveCell.Offset(0, -1).Range("A1:A2").Select<=
siempre selecciona un rango de 2 celdas a la izquierda de la celda activa
sin importar si [p.e.] la celda activa estuviera en el medio de algun rango seleccionado
=> en ambos casos habria que 'cuidar' que la seleccion NO 'este' en la columna 'A' <= ;)

saludos,
hector.

R. C.

unread,
Jul 26, 2004, 11:21:14 AM7/26/04
to
Hola 'Héctor Miguel'

Gracias, adopto tu solución, que parece más funcional ;-)

0 new messages