des-seleccionar

15/11/2004 - 17:20 por Anonimo | Informe spam
Supongamos que selecciona varias celdas, por ejemplo a1,
b3, c4, d5 y a3, y quiero des-seleccionar una de ellas, d5
por ejemplo, ¿Cómo hago?

Gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/11/2004 - 07:30 | Informe spam
hola, 'anonimo' !

Supongamos que selecciona varias celdas, por ejemplo a1, b3, c4, d5 y a3
... quiero des-seleccionar una de ellas, d5 por ejemplo, ¿Como hago?



[hasta donde se, y aunque parezca un 'juego de palabras']...
la [unica] manera de 'de-seleccionar' un rango [o excluirlo] de una seleccion es...
-> seleccionando [nuevamente] otro rango [que lo excluya] :(

saludos,
hector.
Respuesta Responder a este mensaje
#2 Anonimo
16/11/2004 - 15:38 | Informe spam
Gracias Hector. Me lo temía.
Quiero hacer una rutina para invertir una selección en un
rango (lo que está seleccionado des-seleccionarlo y
viceversa). ¿Cómo sé qué celdas están seleccionadas?




hola, 'anonimo' !

Supongamos que selecciona varias celdas, por ejemplo a1,




b3, c4, d5 y a3
... quiero des-seleccionar una de ellas, d5 por ejemplo,




¿Como hago?

[hasta donde se, y aunque parezca un 'juego de palabras']...
la [unica] manera de 'de-seleccionar' un rango [o


excluirlo] de una seleccion es...
-> seleccionando [nuevamente] otro rango [que lo excluya] :(

saludos,
hector.


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
18/11/2004 - 06:32 | Informe spam
hola, 'anonimo' ! [tarde... pero 'sin sueño'] :))

... rutina para invertir una seleccion en un rango
(lo que esta seleccionado des-seleccionarlo y viceversa).
¿Como se que celdas estan seleccionadas?



la seleccion 'actual' es un 'objeto' que se llama... Selection ;)
si se trata de celdas...
- la propiedad 'TypeName' devuelve una cadena de texto: "Range"
- la referencia a las celdas seleccionadas es: Selection.Address

el siguiente codigo 'invierte' la seleccion... ->con referencia a un 'rango especifico'<-
[que puede ser de celdas -dis-continuas p.e. 'B4:E18' o... 'B4:C5,A1:A15,F16,D7']
haz pruebas y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub Invertir_Seleccion()
If TypeName(Selection) <> "Range" Then Exit Sub
Dim miRango As String, Celda As Range, Invertir As String
miRango = "b4:e18"
If Intersect(Selection, Range(miRango)) Is Nothing Then Exit Sub
For Each Celda In Range(miRango)
If Intersect(Celda, Selection) Is Nothing Then
If Invertir = "" Then Invertir = Celda.Address
Invertir = Union(Range(Invertir), Celda).Address
End If
Next
Range(Invertir).Select
End Sub
Respuesta Responder a este mensaje
#4 Anonimo
18/11/2004 - 15:56 | Informe spam
Hola Hector:

Excelente la explicación y brillante el código.
Con más calma haré pruebas de rendimiento de tu código y
del mío (evitaré copiarte) y ya te contaré.

Es un placer contar contigo y con Fernando Arroyo en este
foro. Los que conocemos otros foros de Microsoft apreciamos
la diferencia.

PD
(muy bueno lo de 'tarde... pero sin sueño') ;-)))





hola, 'anonimo' ! [tarde... pero 'sin sueño'] :))

... rutina para invertir una seleccion en un rango
(lo que esta seleccionado des-seleccionarlo y viceversa).
¿Como se que celdas estan seleccionadas?



la seleccion 'actual' es un 'objeto' que se llama...


Selection ;)
si se trata de celdas...
- la propiedad 'TypeName' devuelve una cadena de texto:


"Range"
- la referencia a las celdas seleccionadas es:


Selection.Address

el siguiente codigo 'invierte' la seleccion... ->con


referencia a un 'rango especifico'<-
[que puede ser de celdas -dis-continuas p.e. 'B4:E18'


o... 'B4:C5,A1:A15,F16,D7']
haz pruebas y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==>Sub Invertir_Seleccion()
If TypeName(Selection) <> "Range" Then Exit Sub
Dim miRango As String, Celda As Range, Invertir As String
miRango = "b4:e18"
If Intersect(Selection, Range(miRango)) Is Nothing Then


Exit Sub
For Each Celda In Range(miRango)
If Intersect(Celda, Selection) Is Nothing Then
If Invertir = "" Then Invertir = Celda.Address
Invertir = Union(Range(Invertir), Celda).Address
End If
Next
Range(Invertir).Select
End Sub


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida