En este grupo En todos

Foro de Excel



Como deshabilitar "copiar" y "pegar" en excel

Carlos
Ingenieria universidad de santiago de ...
Escrito por Carlos Perez
el 25/02/2010

Hola a tod@s,

Tengo este problema: Uso MS Excel 2003 en español y ya he puesto seguridad de macros en bajo y he colocado también confiar en cualquier fabricante de macros. Nunca he utilizado una macros pero lo que he leido me indica que quizás la solución de mi problema va por ese lado.

He creado una planilla que posee varias fórmulas de validación asociadas a listas desplegables (que obligan al usuario a utilizar los valores allí indicados y no otros), además de formatos condicionales y otras funciones que me permiten tener certeza que el usuario complete los registros de la manera correcta, dado que este archivo es un alimentador de un consolidador de información que genera resumenes para la gerencia de la empresa.

El problema es que si alguien copia y pega una celda sobre otra, todo el trabajo se pierde y tengo luego problemas en el archivo que consolida, ya que los datos están erróneos.

No me sirve bloquear la hoja/libro dado que si lo hago no pueden cambiar los valores y la idea es que trabajen en el archivo, pero no que arrastren, copien o peguen valores y formatos que no corresponden en él.

Por lo tanto solicito a uds, expertos en en el uso de excel, que me ayuden indicándome qué puedo hacer para lograr el objetivo (proteger los formatos de las celdas).

He visto algunos códigos que he pegado en la parte de códigos del excel (VB), sin embargo no veo que funcionen; imagino que hay algo básico que no estoy haciendo bien. Por esto solicito su cordial ayuda con indicaciones adicionales de qué hacer para poder "activar" estas macros.

Muchos saludos y de antemano les agradezco por su cordial ayuda

Carlos

Galileogali -
Buenos Aires, Argent...
Escrito por Galileogali -
el 25/02/2010

Prueba colocando el sigiente código en el Módulo de la hoja donde tienes tu suerte de formulario:

Option Explicit

Private Sub Worksheet_Activate()
Application. CutCopyMode = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application. CutCopyMode = False
End Sub

GALILEOGALI

http. //excelgali.mejorforo.net/

Carlos Perez
Ingenieria universidad de santiago de ...
Escrito por Carlos Perez
el 25/02/2010

Muchas gracias por tu colaboración Galileogali; sin embargo no me ha funcionado la macro. La he copiado tal como lo señalas en el código pero no se ejecuta (puedo copiar y pegar desde el mouse, desde el menú de edición y desde la barra estándar sin problemas).

Dentro de lo que he observado, estos podrían ser algunos de mis problemas:

. -Algunas clases/campos de las señaladas en los códigos quizás deban ser cambiados a español para coincidir con mi excel (por ejemplo, cuando manejo hojas, cambiar "sheets" por "hojas"). No se donde puedo ver en ayuda qué campos son los que puedo utilizar (para así saber qué puedo usar (que ya está definido y con qué nombre) y qué no)

. -Los comandos activate sólo me funcionan cuando alterno ventanas (alt + tab); al parecer no se "refresca" la macro cuando cambia de hoja y debo obligadamente cambiar de ventana.

Disculpa que te moleste, pero he tomado un pantallazo de cómo ha quedado el código; entiendo que las listas desplegables sobre el código pueden tener efectos para el mismo (por lo que he visto cambiando la línea de código y generando distintas acciones). No se si eso estará afectando mi archivo (no se como adjuntarlo, en caso de que te sea de ayuda).

Finalmente me gustaría pedirte pudieses explicarme para que sirve "Option Explicit" y si me puedes recomendar un manual de principiante para VB.

De antemano muchas gracias, de seguro el código que me mandaste es el que necesito, sólo debo saber cómo activarlo

Slds

Carlos

Cacho Rodríguez
Ingeniería electrónica universidad nac...
Escrito por Cacho Rodríguez
el 26/02/2010

Hola! Carlos.
El código que te ha mostrado Galileo satisface tu solicitud de evitar el "copiar y pegar" en tu hoja "plantilla".

La única buena razón por la que no te debe estar funcionando es porque no la has pegado "... en el Módulo de la hoja donde tienes tu suerte de formulario ... ", al decir de Galileo.

Entonces procede del siguiente modo:

a) Borra el código de donde sea que lo hayas puesto.

b) Haz clic con el botón derecho de tu ratón en la solapa de la hoja en la que quieres el efecto, y selecciona "Ver código".

c) En la ventana que se te abrirá, copia y pega el código (puedes prescindir del " Option Explicit " pues no es sensitivo para tu necesidad).

d) Cierra todas las ventanas del ambiente Visual Basic en el que te encuentras y retorna al Excel.

A partir de entonces: tendrás el efecto pedido.
Saludos, Cacho.

Carlos Perez
Ingenieria universidad de santiago de ...
Escrito por Carlos Perez
el 01/03/2010

Hola Cacho y Galileo,

Muchas gracias por vuestra ayuda. Seguí los pasos indicados pro Cacho y el código de Galileo funcionó a la perfección.

Muy agradecido!

Carlos