Limpiar el Portapapeles

24/11/2004 - 18:29 por Nin | Informe spam
Hola a todos

Como puedo hacer que cuando seleccionen y copien x rango de celdas o
presionen la tecla Imprimir Pantalla, automaticamente se limpie el
portapapeles para evitar que peguen esa informacion en otro libro o en Paint

Es muy urgente, espero que alguien me ayude, muchas gracias a todos!!!
 

Leer las respuestas

#1 Héctor Miguel
25/11/2004 - 02:29 | Informe spam
hola, Nin !

... que cuando seleccionen y copien x rango de celdas o presionen la tecla Imprimir Pantalla
... automaticamente se limpie el portapapeles para evitar que peguen esa informacion en otro libro o en Paint [...]



-> por lo que 'toca' a las formas disponibles para el usuario para copiar datos...
'habria que' deshabilitar TODAS [atajos, comandos, herramientas, etc.]
o.. podrias aprovechar lo siguiente con referencia a...
-> la tecla 'imprimir pantalla'...
1.- 'esa' es una [entre varias mas] de las teclas que 'maneja' windows para su uso [casi] 'exclusivo'
2.- [hasta donde se] excel NO 'cuenta' con ningun evento que detecte un 'cambio entre aplicaciones'
[lo que 'necesariamente' ocurriria si el usuario 'activa' -p.e.- algun programa editor de imagenes]
3.- aun haciendo 'llamadas' a [algunas] API's de windows para 'detectar' si la tecla ha sido 'pulsada'...
=> seria 'imprescindible' que [dicho 'monitoreo'] 'ocurra' mientras se esta ejecutando codigo <4.- lo anterior 'nos obliga' [p.e.] a usar el metodo 'OnTime' de manera 'programada y recurrente'
puedes ver un ejemplo en la pagina de Chip Pearson: http://www.cpearson.com/excel/ontime.htm
[si te decides por usar el metodo, segun el ejemplo en la pagina...]
a) determina un lapso de tiempo 'corto' para cada 'ocurrencia de repeticion' del metodo [5 seg.?]
b) en la macro que 'se ejecuta' cada determinado tiempo ['llamado'... Sub The_Sub()]
-> sustituye las lineas 'comentadas' que dicen... ' your code here [o el procedimiento 'completo']
-> por un 'reemplazo y vaciado' del portapapeles de windows +/- como lo siguiente...
Sub The_Sub()
Worksheets(1).Range("iv65536").Copy
Application.CutCopyMode = False
StartTimer
End Sub
5.- [con algo 'parecido' a lo anterior] cuando el usuario 'se cambie' al editor de imagenes...
NO habria nada que 'pegar' en el portapapeles [dependiendo del tiempo que 'le tome' y la macro]
6.- toma en cuenta que TAMPOCO habria 'que pegar' si el usuario hace 'copiar/cortar/pegar'' <= OJO

saludos,
hector.

Preguntas similares