Celda parpadeante...

25/05/2004 - 22:59 por todavianosequeponer | Informe spam
Me parece que Héctor ya puso algo sobre esto...

Resulta que tengo un libro en el cual a final el cursor se posiciona en una
celda en la cual el usuario tiene que poner un número (1, 2, 3, 4 ó 5)

Pero no hay manera. No se enteran. ¿Como se haría para que parpadease esa
celda hasta que introduzcan el dato...

Gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
28/05/2004 - 05:25 | Informe spam
hola, Guillermo !

... celda siempre distinta ... macro se posiciona ... en ella al finalizar
... la parpadeante seria la celda activa
... deberia dejar de parpadear cuando ... se introdujese un 1, 2, 3, 4 o 5, no aceptando otro valor...



considerando que:
=>aun con la/s celda/s 'parpadeando'<= el 'operador/usuario' podria 'saltarse' las instrucciones :((
=>si se diera el caso anterior<= habria que estar 'monitoreando' TODAS las celdas 'pendientes' :\\
=>un uso 'excesivo' del metodo 'OnTime' [recursivo] podria 'volver inestable' al sistema <\°|°/>
=>ademas de 'alentar' el rendimiento de tu aplicacion [que ya has 'experimentado'] y otros 'imponderables'...
[me parece que] valdria la pena 'cambiar el enfoque' a... =>evitar<= que 'se mueva' de la celda mientras. ;)

haz una prueba con la sugerencia que te expongo al final y... ¿comentas?
saludos,
hector.
-
1.- en el area de declarciones de un modulo 'normal', declara las siguientes variables...
Public Validar As Boolean, Anterior As Range

2.- al finalizar la seleccion de 'esa' celda [antes del 'End Sub'] en 'la macro', pon las siguientes instrucciones...
[... otras lineas de tu codigo =>hasta la 'seleccion' de dicha celda<= ...]
Set Anterior = ActiveCell
Validar = True
End Sub

3.- en el modulo de codigo de 'la hoja'...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Validar Then Exit Sub
If Anterior < 1 Or Anterior > 5 Then
Application.EnableEvents = False
Anterior.Select
MsgBox "Introduce un valor entre 1 y 5 en " & Anterior.Address
Application.EnableEvents = True
Else: Validar = False: Set Anterior = Nothing: Exit Sub
End If
End Sub
Respuesta Responder a este mensaje
#7 todavianosequeponer
29/05/2004 - 10:31 | Informe spam
Gracias Héctor, funciona perfectamente. Lo otro era una "virguería" creo que
demasiado costosa...

De todas maneras hay algo que quería preguntar pues me pasa muchas veces.
Cuando le indico a una macro que se posicione en tal o cual sitio, lo hace,
pero la ventana no se mueve al mismo tiempo por lo cual el cursor está en un
sitio y hay que ir a la celda activa con los cursores. ¿Hay forma de
solucionar esto?. No recuerdo si lo hace siempre o solo es cuando hay
inmovilizado alguno de los paneles...
escribió en el mensaje
news:
hola, Guillermo !

> ... celda siempre distinta ... macro se posiciona ... en ella al


finalizar
> ... la parpadeante seria la celda activa
> ... deberia dejar de parpadear cuando ... se introdujese un 1, 2, 3, 4 o


5, no aceptando otro valor...

considerando que:
=>aun con la/s celda/s 'parpadeando'<= el 'operador/usuario' podria


'saltarse' las instrucciones :((
=>si se diera el caso anterior<= habria que estar 'monitoreando' TODAS las


celdas 'pendientes' :\\
=>un uso 'excesivo' del metodo 'OnTime' [recursivo] podria 'volver


inestable' al sistema <\°|°/>
=>ademas de 'alentar' el rendimiento de tu aplicacion [que ya has


'experimentado'] y otros 'imponderables'...
[me parece que] valdria la pena 'cambiar el enfoque' a... =>evitar<= que


'se mueva' de la celda mientras. ;)

haz una prueba con la sugerencia que te expongo al final y... ¿comentas?
saludos,
hector.
-
1.- en el area de declarciones de un modulo 'normal', declara las


siguientes variables...
Public Validar As Boolean, Anterior As Range

2.- al finalizar la seleccion de 'esa' celda [antes del 'End Sub'] en 'la


macro', pon las siguientes instrucciones...
[... otras lineas de tu codigo =>hasta la 'seleccion' de dicha celda<...]
Set Anterior = ActiveCell
Validar = True
End Sub

3.- en el modulo de codigo de 'la hoja'...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Validar Then Exit Sub
If Anterior < 1 Or Anterior > 5 Then
Application.EnableEvents = False
Anterior.Select
MsgBox "Introduce un valor entre 1 y 5 en " & Anterior.Address
Application.EnableEvents = True
Else: Validar = False: Set Anterior = Nothing: Exit Sub
End If
End Sub

Respuesta Responder a este mensaje
#8 Héctor Miguel
30/05/2004 - 09:08 | Informe spam
hola, vulcano !

... funciona ... lo otro era una "virguería" creo que demasiado costosa...



gracias a ti... [por el 'feed-back'] ;)

... una macro que se posicione en tal o cual sitio ... la ventana no se mueve al mismo tiempo
... el cursor esta en un sitio y hay que ir a la celda activa con los cursores. ¿... forma de solucionar esto?.
No recuerdo si lo hace siempre o solo es cuando hay inmovilizado alguno de los paneles...



[hasta donde se] 'sucede' =>solo<= cuando 'liberas/descongelas' los paneles...
y la seleccion [actual] 'estaba' =>fuera de vista<= de los paneles 'superior' y/o izquierdo :(
para 'solucionarlo' [si los paneles los liberas por codigo]...
=>despues de liberarlos<= agrega una instruccion: Selection.Select

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida