Discussion:
Evitar Cortar-Pegar en hoja protegida
(demasiado antiguo para responder)
Esteban Dido
2005-05-07 01:40:30 UTC
Permalink
Hola,
En una hoja protegida, ¿Es posible impedir que se pueda hacer Cortar-Pegar?

--
Saludos
Héctor Miguel
2005-05-07 09:09:25 UTC
Permalink
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer Cortar-Pegar?
considerando que para poder 'pegar lo copiado' es necesario 'moverse/cambiarse' a la 'nueva ubicacion'...
[me parece que] la opcion 'menos complicada' es copiando las siguientes lineas...
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub

[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.

p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja 'completa' [o el libro entero]
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\ revisa un articulo al respecto en:
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian servirte... 'de base' ;)
Esteban Dido
2005-05-07 20:16:25 UTC
Permalink
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que 'sin
macros' el usuario no pueda [cortar-pegar] pero sí pueda [copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque eso
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más fórmulas
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, que se invalidan
transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna forma de
hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer Cortar-Pegar?
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes lineas...
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\ revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian servirte... 'de base' ;)
Esteban Dido
2005-05-07 20:21:14 UTC
Permalink
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que 'sin
macros' el usuario no pueda [cortar-pegar] pero sí pueda [copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque eso
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más fórmulas
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.

--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer Cortar-Pegar?
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes lineas...
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\ revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian servirte... 'de base' ;)
KL
2005-05-07 20:40:38 UTC
Permalink
No creo que sa posible sin macros a no ser que lo protejas todo. Pero
entiendo que esa no es la idea ya que es necesario que el usuario introduzca
datos. Por lo tanto, creo que una de las opciones seria usar Access donde el
control del diseñador sobre el interfaz de usuario (UI) es casi total.

Saludos,
KL
Post by Esteban Dido
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que 'sin
macros' el usuario no pueda [cortar-pegar] pero sí pueda [copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque eso
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más fórmulas
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer
Cortar-Pegar?
Post by Héctor Miguel
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes
lineas...
Post by Héctor Miguel
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\
revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian
servirte... 'de base' ;)
Esteban Dido
2005-05-07 21:54:17 UTC
Permalink
Lástima KL, tengo conocimientos muy básicos de Access. ¿Tienes alguna
sugerencia para transformar mi planilla Excel a Access sin tener que partir
de cero?

--
Saludos
Post by KL
No creo que sa posible sin macros a no ser que lo protejas todo. Pero
entiendo que esa no es la idea ya que es necesario que el usuario introduzca
datos. Por lo tanto, creo que una de las opciones seria usar Access donde el
control del diseñador sobre el interfaz de usuario (UI) es casi total.
Saludos,
KL
Post by Esteban Dido
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que 'sin
macros' el usuario no pueda [cortar-pegar] pero sí pueda [copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque eso
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más fórmulas
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer
Cortar-Pegar?
Post by Héctor Miguel
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes
lineas...
Post by Héctor Miguel
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\
revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian
servirte... 'de base' ;)
KL
2005-05-07 22:03:47 UTC
Permalink
Esteban,

Pues sigo en el rol de "aguafiestas", pero no creo que sea posible - es que
los formularios de Access son radicalmente distintos a las hojas de calculo.
Ademas la "learning curve" es bastante mas larga en Access que en Excel
(digo yo (?)), es decir si no has usado Access antes tardaras en crear la
aplicacion.

Saludos,
KL
Post by Esteban Dido
Lástima KL, tengo conocimientos muy básicos de Access. ¿Tienes alguna
sugerencia para transformar mi planilla Excel a Access sin tener que partir
de cero?
--
Saludos
Post by KL
No creo que sa posible sin macros a no ser que lo protejas todo. Pero
entiendo que esa no es la idea ya que es necesario que el usuario
introduzca
Post by KL
datos. Por lo tanto, creo que una de las opciones seria usar Access donde
el
Post by KL
control del diseñador sobre el interfaz de usuario (UI) es casi total.
Saludos,
KL
Post by Esteban Dido
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que
'sin
Post by KL
Post by Esteban Dido
macros' el usuario no pueda [cortar-pegar] pero sí pueda
[copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque
eso
Post by KL
Post by Esteban Dido
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más
fórmulas
Post by KL
Post by Esteban Dido
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer
Cortar-Pegar?
Post by Héctor Miguel
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes
lineas...
Post by Héctor Miguel
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\
revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian
servirte... 'de base' ;)
KL
2005-05-07 22:10:48 UTC
Permalink
Hola Esteban,

Se me acaba de ocurrir una idea. Y por que no lo proteges todo y le haces al
usuario que pulse un boton que invocaria un formulario (UserForm) atraves
del cual se haria todo el "data-entry". Creo que es bastante menos probable
que el usuario pueda afectar tu hoja desde un UserForm (todo esta en tus
manos).

Saludos,
KL
Post by KL
Esteban,
Pues sigo en el rol de "aguafiestas", pero no creo que sea posible - es
que los formularios de Access son radicalmente distintos a las hojas de
calculo. Ademas la "learning curve" es bastante mas larga en Access que en
Excel (digo yo (?)), es decir si no has usado Access antes tardaras en
crear la aplicacion.
Saludos,
KL
Post by Esteban Dido
Lástima KL, tengo conocimientos muy básicos de Access. ¿Tienes alguna
sugerencia para transformar mi planilla Excel a Access sin tener que partir
de cero?
--
Saludos
Post by KL
No creo que sa posible sin macros a no ser que lo protejas todo. Pero
entiendo que esa no es la idea ya que es necesario que el usuario
introduzca
Post by KL
datos. Por lo tanto, creo que una de las opciones seria usar Access donde
el
Post by KL
control del diseñador sobre el interfaz de usuario (UI) es casi total.
Saludos,
KL
Post by Esteban Dido
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que
'sin
Post by KL
Post by Esteban Dido
macros' el usuario no pueda [cortar-pegar] pero sí pueda
[copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque
eso
Post by KL
Post by Esteban Dido
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más
fórmulas
Post by KL
Post by Esteban Dido
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer
Cortar-Pegar?
Post by Héctor Miguel
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes
lineas...
Post by Héctor Miguel
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o... la hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\
revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian
servirte... 'de base' ;)
Esteban Dido
2005-05-07 22:48:55 UTC
Permalink
Gracias, H y KL por su interés en mi problema.
KL, no creo que seas "aguafiestas". Tú no creaste Excel ni Access
(¡supongo!), sólo los conoces a fondo. Si no vá, no vá y punto. He usado
muchas veces Access y he creado Bases de datos relacionales, lo que no
significa que sea un conocedor profundo del producto. Insisto en que mis
conocimientos de Access son básicos, aunque no nulos.
Por otro lado, estoy de acuerdo con H en que Access es mucho menos amigable
que Excel.
Creo que lo mejor es intentar tu otra idea, de hacer un formulario para la
entrada de datos.
Voy a pensar acerca de eso.

Saludos
Post by KL
Esteban,
Pues sigo en el rol de "aguafiestas", pero no creo que sea posible - es que
los formularios de Access son radicalmente distintos a las hojas de calculo.
Ademas la "learning curve" es bastante mas larga en Access que en Excel
(digo yo (?)), es decir si no has usado Access antes tardaras en crear la
aplicacion.
Saludos,
KL
Post by Esteban Dido
Lástima KL, tengo conocimientos muy básicos de Access. ¿Tienes alguna
sugerencia para transformar mi planilla Excel a Access sin tener que partir
de cero?
--
Saludos
Post by KL
No creo que sa posible sin macros a no ser que lo protejas todo. Pero
entiendo que esa no es la idea ya que es necesario que el usuario
introduzca
Post by KL
datos. Por lo tanto, creo que una de las opciones seria usar Access donde
el
Post by KL
control del diseñador sobre el interfaz de usuario (UI) es casi total.
Saludos,
KL
Post by Esteban Dido
Gracias, H pero una macro no me sirve. Si el usuario abre el archivo sin
habilitar las macros puede [cortar-pegar] sin problemas. Necesito que
'sin
Post by KL
Post by Esteban Dido
macros' el usuario no pueda [cortar-pegar] pero sí pueda
[copiar-pegar].
Tampoco debe poder [mover] una celda arrastrándola con el mouse porque
eso
Post by KL
Post by Esteban Dido
es equivalente a [cortar-pegar]. ¿Es posible?.
En todo caso, no necesito nada infalible. El usuario apenas tiene los
conocimientos básicos para usar Excel, y difícilmente conoce más
fórmulas
Post by KL
Post by Esteban Dido
que sumar, restar, multiplicar y dividir. Ni siquiera conoce la palabra
macro. Y como es tan ignorante con Excel, hace cosas inverosímiles como
mover celdas que están referenciadas en fórmulas, con lo que invalida dichas
fórmulas transformándolas en #¡REF!. Necesito evitar aquello. ¿Habrá alguna
forma de hacerlo?
E.D.
--
Saludos
Post by Héctor Miguel
hola, Esteban !
Post by Esteban Dido
En una hoja protegida, ¿Es posible impedir que se pueda hacer
Cortar-Pegar?
Post by Héctor Miguel
considerando que para poder 'pegar lo copiado' es necesario
'moverse/cambiarse' a la 'nueva ubicacion'...
Post by Héctor Miguel
[me parece que] la opcion 'menos complicada' es copiando las siguientes
lineas...
Post by Héctor Miguel
=== en el modulo de codigo de ->la hoja protegida<- ===
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CutCopyMode = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[sobra decir que el libro debera 'tener permiso' para usar macros] ;)
saludos,
hector.
p.d. lo anterior NO 'impide' que se pueda copiar 'por codigo' o...
la
Post by KL
Post by Esteban Dido
Post by KL
Post by Esteban Dido
Post by Héctor Miguel
hoja
'completa' [o el libro entero]
Post by Héctor Miguel
si tus necesidades 'van mas alla' de la anterior 'sencillez' :\\
revisa
http://www.sistemaslym.net/vba/excel/exarc1.html
son solo algunas ideas y NO 'infalibles', pero [creo que] podrian
servirte... 'de base' ;)
Héctor Miguel
2005-05-07 22:18:08 UTC
Permalink
hola, chicos !
__ 1 __
Esteban escribio ...
... una macro no me sirve... el usuario abre... sin habilitar las macros puede [cortar-pegar]
... que 'sin macros'... no pueda [cortar-pegar] pero si... [copiar-pegar].
... Tampoco... [mover] una celda arrastrandola con el mouse porque eso es... [cortar-pegar]
... no necesito nada infalible. El usuario... tiene... conocimientos basicos
... difícilmente conoce mas formulas que sumar, restar, multiplicar y dividir
... hace cosas inverosimiles como mover celdas... referenciadas en formulas... transformandolas en #¡REF! [...]
__ 2 __
KL escribio ...
No creo que sa posible sin macros a no ser que lo protejas todo.
... entiendo que esa no es la idea ya que es necesario que el usuario introduzca datos
... creo... de las opciones seria usar Access donde el control del diseñador sobre... (UI) es casi total.
__ 3 __
Esteban escrbio ...
... tengo conocimientos muy basicos de Access.
... alguna sugerencia para transformar mi planilla Excel a Access sin tener que partir de cero?
[es posible que... y...] ANTES de que 'tengas que' cambiarte al access...
a) si los conocimientos de usuario son 'basicos' [pero puede usar la opcion de NO ejecutar las macros]...
b) si el usuario 'NO entiende' [o no quiere entender] ->la importancia<- de 'ciertas' celdas/formulas <\°|°/>
c) [personalmente] 'dudo' que con access puedas obtener la 'amigabilidad' [entre otras cosas] de excel ;)
d) AUN si usaras access, tendrias que utilizar macros para 'comunicarte' con excel [por funciones NO 'basicas']
e) si [de todas maneras] tuvieras que usar macros, y quisieras que pasaran 'desapercibidas' [para el usuario]...
puedes [al menos] 'intentar' con modulos de clase y eventos al nivel de la aplicacion [excel]...
a traves del libro de macros personal.xls o algun complemento [add-in]
[obviamente] 'tendrias que' ->instalarselo al usuario en su pc<- [esta pudiera ser la parte mas... 'dificil'] -?-
si sigues interesado en el tema [y espero que si]... visita en la pagina de Chip Pearson los temas de:
-> Application Level Events
http://www.cpearson.com/excel/AppEvent.htm
-> Event Procedures In Microsoft® Excel97®
http://www.cpearson.com/excel/events.htm
[incluso podras descargar ejemplos] ;)

si cualquier duda... comentas?
saludos,
hector.
KL
2005-05-07 22:38:37 UTC
Permalink
Hola HM,
Post by Héctor Miguel
c) [personalmente] 'dudo' que con access puedas obtener la 'amigabilidad'
[entre otras cosas] de excel ;)
Quizas en este punto discreparia contigo, ya que creo (segun la descripcion)
que se trata un usuario que no necesita amigabilidad/flexibilidad usando la
aplicacion sino al reves "hardcoding" y "workflow" muy rigido. Como ya he
dicho en mi mensaje posterior a la sugerencia de usar Access, creo que los
formularios de Excel podrian ser un buen sustituto de Access (solo que
habria que seguir usando macros).
Post by Héctor Miguel
d) AUN si usaras access, tendrias que utilizar macros para 'comunicarte'
con excel [por funciones NO 'basicas']
?Y para que comunicarse con Excel? Si simplemente usaramos Access como
"front-end" donde el usuario solo trabaja con el formulario que almacena los
datos en una tabla de file-server (digamos *.mdb colocado en red) aqui si
que los macros no hacen falta. Luego ya el master-user (Esteban o quien sea)
se encargaria de pasar los datos a Excel, sea por macros o no. digo yo (?)

Saludos,
KL
Esteban Dido
2005-05-07 22:57:42 UTC
Permalink
Hola, KL. En este caso no importaría usar macros, porque el usuario sabría
que si no usa macros, no puede ingresar datos. Como dices tú: "hardcoding".
Sería como decirle: "Abre con macros, te guste o nó" ¿verdad?

--
Saludos
Post by KL
Hola HM,
Post by Héctor Miguel
c) [personalmente] 'dudo' que con access puedas obtener la
'amigabilidad'
Post by KL
Post by Héctor Miguel
[entre otras cosas] de excel ;)
Quizas en este punto discreparia contigo, ya que creo (segun la descripcion)
que se trata un usuario que no necesita amigabilidad/flexibilidad usando la
aplicacion sino al reves "hardcoding" y "workflow" muy rigido. Como ya he
dicho en mi mensaje posterior a la sugerencia de usar Access, creo que los
formularios de Excel podrian ser un buen sustituto de Access (solo que
habria que seguir usando macros).
Post by Héctor Miguel
d) AUN si usaras access, tendrias que utilizar macros para 'comunicarte'
con excel [por funciones NO 'basicas']
?Y para que comunicarse con Excel? Si simplemente usaramos Access como
"front-end" donde el usuario solo trabaja con el formulario que almacena los
datos en una tabla de file-server (digamos *.mdb colocado en red) aqui si
que los macros no hacen falta. Luego ya el master-user (Esteban o quien sea)
se encargaria de pasar los datos a Excel, sea por macros o no. digo yo (?)
Saludos,
KL
KL
2005-05-07 23:05:17 UTC
Permalink
Eso es - esta era la idea.

Saludos,
KL
Post by Esteban Dido
Hola, KL. En este caso no importaría usar macros, porque el usuario sabría
"hardcoding".
Sería como decirle: "Abre con macros, te guste o nó" ¿verdad?
--
Saludos
Post by KL
Hola HM,
Post by Héctor Miguel
c) [personalmente] 'dudo' que con access puedas obtener la
'amigabilidad'
Post by KL
Post by Héctor Miguel
[entre otras cosas] de excel ;)
Quizas en este punto discreparia contigo, ya que creo (segun la
descripcion)
Post by KL
que se trata un usuario que no necesita amigabilidad/flexibilidad usando
la
Post by KL
aplicacion sino al reves "hardcoding" y "workflow" muy rigido. Como ya he
dicho en mi mensaje posterior a la sugerencia de usar Access, creo que los
formularios de Excel podrian ser un buen sustituto de Access (solo que
habria que seguir usando macros).
Post by Héctor Miguel
d) AUN si usaras access, tendrias que utilizar macros para
'comunicarte'
con excel [por funciones NO 'basicas']
?Y para que comunicarse con Excel? Si simplemente usaramos Access como
"front-end" donde el usuario solo trabaja con el formulario que almacena
los
Post by KL
datos en una tabla de file-server (digamos *.mdb colocado en red) aqui si
que los macros no hacen falta. Luego ya el master-user (Esteban o quien
sea)
Post by KL
se encargaria de pasar los datos a Excel, sea por macros o no. digo yo (?)
Saludos,
KL
Héctor Miguel
2005-05-07 23:08:11 UTC
Permalink
hola, KL !

aunque ya te ha contestado Esteban, y yo estoy de acuerdo con el, quien esta de acuerdo contigo
[en el sentido de usar mejor un formulario en excel para la entrada de datos] :DD ...
Post by Héctor Miguel
c) [personalmente] 'dudo' que con access puedas obtener la 'amigabilidad' [entre otras cosas] de excel ;)
---
Post by Héctor Miguel
... discreparia contigo, ya que creo... se trata un usuario que no necesita amigabilidad/flexibilidad [...]
=> si NO es [una 'cierta'] flexibilidad el 'permitirle' [copiar-pegar] pero NO [cortar/pegar]... :-(
Post by Héctor Miguel
d) AUN si usaras access, tendrias que utilizar macros para 'comunicarte' con excel [por funciones NO 'basicas']
---
Post by Héctor Miguel
... para que comunicarse con Excel?... Access como "front-end"... el usuario solo trabaja con el formulario [...]
... ya el master-user... se encargaria de pasar los datos a Excel, sea por macros o no. digo yo (?)
=> aunque ya Estaban [comenta que] ha 'sentido' la [poca] 'amigabilidad' de access con relacion a excel...
y considerando que 'el usuario' tiene [solo] conocimientos 'basicos' de excel...
a) 'tendrias que'... 'pedirle'... al usuario... que aprenda/use/se acostumbre... a usar access -?-
b) etc. etc. etc. [le corto porque nos estamos saliendo -un poquito- del 'proposito' de los foros] :))

saludos,
hector.
Esteban Dido
2005-05-07 23:20:41 UTC
Permalink
Hola H,
Enseñarle a un burro a hablar francés sería más fácil que pedirle a este
usuario que aprenda/use/se acostumbre a usar Access. Olvídalo.
Finalmente, si no doy con la forma de hacer ese formulario, prefiero
arreglar las fórmulas que dañe moviendo las 'putas celdas relacionadas con
fórmulas' unas cuantas veces hasta hacerlo entender que eso no debe hacerse
y que tiene que usar [copiar-pegar] para trasladar datos de una celda a
otra. (¿entenderá?).
Un saludo a ambos: H y KL.

Saludos
Post by Héctor Miguel
hola, KL !
aunque ya te ha contestado Esteban, y yo estoy de acuerdo con el, quien
esta de acuerdo contigo
Post by Héctor Miguel
[en el sentido de usar mejor un formulario en excel para la entrada de datos] :DD ...
Post by Héctor Miguel
c) [personalmente] 'dudo' que con access puedas obtener la
'amigabilidad' [entre otras cosas] de excel ;)
Post by Héctor Miguel
---
Post by Héctor Miguel
... discreparia contigo, ya que creo... se trata un usuario que no
necesita amigabilidad/flexibilidad [...]
Post by Héctor Miguel
=> si NO es [una 'cierta'] flexibilidad el 'permitirle' [copiar-pegar]
pero NO [cortar/pegar]... :-(
Post by Héctor Miguel
Post by Héctor Miguel
d) AUN si usaras access, tendrias que utilizar macros para 'comunicarte'
con excel [por funciones NO 'basicas']
Post by Héctor Miguel
---
Post by Héctor Miguel
... para que comunicarse con Excel?... Access como "front-end"... el
usuario solo trabaja con el formulario [...]
Post by Héctor Miguel
Post by Héctor Miguel
... ya el master-user... se encargaria de pasar los datos a Excel, sea
por macros o no. digo yo (?)
Post by Héctor Miguel
=> aunque ya Estaban [comenta que] ha 'sentido' la [poca] 'amigabilidad'
de access con relacion a excel...
Post by Héctor Miguel
y considerando que 'el usuario' tiene [solo] conocimientos 'basicos' de excel...
a) 'tendrias que'... 'pedirle'... al usuario... que aprenda/use/se
acostumbre... a usar access -?-
Post by Héctor Miguel
b) etc. etc. etc. [le corto porque nos estamos saliendo -un
poquito- del 'proposito' de los foros] :))
Post by Héctor Miguel
saludos,
hector.
Héctor Miguel
2005-05-07 23:39:44 UTC
Permalink
hola, Esteban !
... un burro hablar frances... mas facil que... este usuario... aprenda/use/se acostumbre a usar Access. Olvidalo.
==> :DDD
... si no doy con la forma de hacer ese formulario, prefiero arreglar las formulas que dañe
... hasta hacerlo entender que... tiene que usar [copiar-pegar] para trasladar datos de una celda aotra. (¿entenderá?).
ya 'entrados' en el tema, y [entendiendo que] si no 'te queda' otra que 'obligarlo' a usar las macros [por el userform]...
haz una prueba con los siguientes 'trucos' [obviamente usando las macros]...
=== en el modulo de codigo de la hoja protegida ===
Private Sub Worksheet_Activate()
Application.CellDragAndDrop = False ' NO se pueden 'arrastrar' las celdas :-(
End Sub
Private Sub Worksheet_Deactivate()
Application.CellDragAndDrop = True' YA se pueden 'arrastrar las celdas :))
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False ' SOLO se 'permite' el copy NO el cut :))
End Sub

si cualquier duda... comentas?
saludos,
hector.
Esteban Dido
2005-05-09 23:58:46 UTC
Permalink
Hola, KL y H,
Después de darle varias vueltas a lo que "conversamos", se me ocurrió que lo
más práctico - y es lo que hice - era olvidar el userform y dejar la
planilla como está, pero "obligando" al usuario a abrir habilitando las
macros. Para ello, oculté dos de las tres hojas del libro, de modo que si
abre sin macros no podrá trabajar. TIENE que abrir con macros para ver las
hojas donde debe ingresar datos. En el código de ambas hojas puse el código
que me enviaste, H con lo que no podrá arrastrar ni cortar pero sí copiar.
Gracias por ese código. Y en un módulo normal puse el siguiente código:

Sub Auto_Open()
Worksheets(1).Visible = True
Worksheets(3).Visible = True
Worksheets(3).Select
End Sub

Sub Auto_Close()
Worksheets(1).Visible = False
Worksheets(3).Visible = False
End Sub

Sólo me queda una pregunta, que sé que ustedes podrán responder: Si el
usuario elige Cerrar, las dos hojas se ocultan. Pero si luego pisa Cancelar,
quiero que se vuelvan a mostrar las hojas. No he podido dar con el código.
Un saludo
E.D.

Saludos
Post by Héctor Miguel
hola, Esteban !
... un burro hablar frances... mas facil que... este usuario...
aprenda/use/se acostumbre a usar Access. Olvidalo.
Post by Héctor Miguel
==> :DDD
... si no doy con la forma de hacer ese formulario, prefiero arreglar
las formulas que dañe
Post by Héctor Miguel
... hasta hacerlo entender que... tiene que usar [copiar-pegar] para
trasladar datos de una celda aotra. (¿entenderá?).
Post by Héctor Miguel
ya 'entrados' en el tema, y [entendiendo que] si no 'te queda' otra que
'obligarlo' a usar las macros [por el userform]...
Post by Héctor Miguel
haz una prueba con los siguientes 'trucos' [obviamente usando las macros]...
=== en el modulo de codigo de la hoja protegida ===
Private Sub Worksheet_Activate()
Application.CellDragAndDrop = False ' NO se pueden 'arrastrar' las celdas :-(
End Sub
Private Sub Worksheet_Deactivate()
Application.CellDragAndDrop = True' YA se pueden 'arrastrar las celdas :))
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False
' SOLO se 'permite' el copy NO el cut :))
Post by Héctor Miguel
End Sub
si cualquier duda... comentas?
saludos,
hector.
KL
2005-05-10 00:25:13 UTC
Permalink
Hola Esteban,

Ya puestos a restringir los derechos de usuario, que tal si al cerrar el
archivo forzamos el Save (sin pedir permiso) y eliminamos la opcion de
Cancelar. Algo asi:

Sub Auto_Close()
Worksheets(1).Visible = False
Worksheets(3).Visible = False
ThisWorkbook.Save
End Sub

Saludos,
KL
Esteban Dido
2005-05-10 01:12:10 UTC
Permalink
No KL,
Ya lo había pensado, pero no me gusta. Si sólo pudieramos eliminmar la
opcion de Cancelar podría ser, pero no quiero eliminar la opcion de cerrar
sin guardar.

--
Saludos
Post by KL
Hola Esteban,
Ya puestos a restringir los derechos de usuario, que tal si al cerrar el
archivo forzamos el Save (sin pedir permiso) y eliminamos la opcion de
Sub Auto_Close()
Worksheets(1).Visible = False
Worksheets(3).Visible = False
ThisWorkbook.Save
End Sub
Saludos,
KL
Héctor Miguel
2005-05-10 08:07:07 UTC
Permalink
hola, Esteban !
... lo habia pensado, pero no me gusta. Si... pudieramos eliinmar la opcion de Cancelar podria ser
... pero no quiero eliminar la opcion de cerrar sin guardar.
-> ya que estas 'forzando' al usuario para que habilite las macros :DD
[todavia] existen algunos 'riesgos' para que 'eche por la borda' la proteccion de las hojas 'ocultas' [p.e.]
-> si NO da 'su permiso' para que se haga uso de las macros [o sea que de todos modos 'lo abre']...
a) podria mostrar las hojas ocultas desde [menu] formato / hoja / mostrar...
=> estabece a las hojas la propiedad .Visible = xlSheetVeryHidden [en lugar de la 'simple' False]
b) estas usando la propiedad 'indice' ->Worksheets(1)<- [pero 'igual' pudiera ser si usas el nombre]...
[y no estoy seguro de que se trate de -solamente- las tres hojas que pones en el ejemplo, pero...]
-> si les cambia el nombre o la 'posicion'... YA NO 'van a ser'... las que tu 'suponias' :-( <= OJO
=> [te sugiero] CAMBIALES y usa la propiedad 'CodeName' [la que esta entre parentesis en las propiedades]
c) suponiendo que habilita las macros... si graba el archivo cuando estan visibles las hojas 'ocultables'...
y sin hacer mas modificaciones... CIERRA el archivo... 'la proxima vez' [que lo abra]... van a seguir visibles :-(
[ya sabes... le diceque no al 'famoso cuadrito' de... desea guardar los cambios.......]
d) aunque puedes 'monitorear' la advertencia [esa la del cuadrito] a traves del evento '_beforeclose' de thisworkbook...
lo realmente 'importante' [creo yo] y que es necesario 'proteger'... es el evento ->_beforesave<-
[para que siempre que se grabe el archivo, las hojas 'ocultables' permanezcan ocultas] ;)

te paso un ejemplo usando 3 hojas, los eventos, las propiedades y los codenames mencionados
[adapta segun tus necesidades] estoy usando los siguientes codenames:
pantalla = es el codename de la hoja que se mostrara cuando el libro se abre SIN permiso de usar macros
presentar = es el codename de la hoja que se muestra al habilitar las macros [la que no queda como 'activa']
procesos = es el codename de la hoja que queda como 'activa' al abrirse 'con permiso' de usar macros

si cualquier duda... comentas?
saludos,
hector.
=== en el modulo de codigo del libro [ThisWorkbook] ===
Dim Cerrando As Boolean, Activa As String
Private Sub Workbook_Open()
MostrarHojas
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' http://j-walk.com/ss/excel/tips/tip78.htm
If Not Me.Saved Then
Select Case MsgBox( _
"¿Desea guardar los cambios efectuados en '" & _
Me.Name & "'?", vbYesNoCancel + vbQuestion)
Case vbYes: OcultarHojas: Cerrando = True: Me.Save
Case vbNo: Me.Saved = True
Case vbCancel: Cancel = True: Exit Sub
End Select
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cerrando Then Exit Sub
Application.ScreenUpdating = False
Activa = ActiveSheet.Name
OcultarHojas
Me.Save
MostrarHojas
Sheets(Activa).Activate
Cancel = True
End Sub
Private Sub MostrarHojas()
Procesos.Visible = xlSheetVisible
Pantalla.Visible = xlSheetVeryHidden
Presentar.Visible = xlSheetVisible
Me.Saved = True
End Sub
Private Sub OcultarHojas()
Pantalla.Visible = xlSheetVisible
Presentar.Visible = xlSheetVeryHidden
Procesos.Visible = xlSheetVeryHidden
End Sub
Esteban Dido
2005-05-13 02:48:32 UTC
Permalink
Hola Héctor,
No había tenido tiempo de seguir con este tema, pero te cuento que sí sé que
se pueden hacer aparecer las hojas mediante formato-hoja-mostrar, y tambien
grabar y luego guardar sin cambios, pero dudo que este usuario lo sepa, por
lo que no me preocupa mucho. Yo creo que entenderá que estoy evitando que
haga cosas que a él le van a provocar problemas, por lo que sé que será
consciente y no lo seguirá haciendo. No es un tarado ni mucho menos.
Simplemente trato de evitar que haga cosas por olvido, no por porfiado. De
todos modos voy a estudiar el código que me diste y voy a usarlo. "La
seguridad siempre es bienvenida"
Un saludo y gracias por seguir aportando.

Saludos
Post by Héctor Miguel
hola, Esteban !
... lo habia pensado, pero no me gusta. Si... pudieramos eliinmar la
opcion de Cancelar podria ser
Post by Héctor Miguel
... pero no quiero eliminar la opcion de cerrar sin guardar.
-> ya que estas 'forzando' al usuario para que habilite las macros :DD
[todavia] existen algunos 'riesgos' para que 'eche por la borda' la
proteccion de las hojas 'ocultas' [p.e.]
Post by Héctor Miguel
-> si NO da 'su permiso' para que se haga uso de las macros [o sea que de
todos modos 'lo abre']...
Post by Héctor Miguel
a) podria mostrar las hojas ocultas desde [menu] formato / hoja / mostrar...
=> estabece a las hojas la propiedad .Visible = xlSheetVeryHidden
[en lugar de la 'simple' False]
Post by Héctor Miguel
b) estas usando la propiedad 'indice' ->Worksheets(1)<- [pero 'igual'
pudiera ser si usas el nombre]...
Post by Héctor Miguel
[y no estoy seguro de que se trate de -solamente- las tres hojas
que pones en el ejemplo, pero...]
Post by Héctor Miguel
-> si les cambia el nombre o la 'posicion'... YA NO 'van a ser'...
las que tu 'suponias' :-( <= OJO
Post by Héctor Miguel
=> [te sugiero] CAMBIALES y usa la propiedad 'CodeName' [la que
esta entre parentesis en las propiedades]
Post by Héctor Miguel
c) suponiendo que habilita las macros... si graba el archivo cuando
estan visibles las hojas 'ocultables'...
Post by Héctor Miguel
y sin hacer mas modificaciones... CIERRA el archivo... 'la proxima
vez' [que lo abra]... van a seguir visibles :-(
Post by Héctor Miguel
[ya sabes... le diceque no al 'famoso cuadrito' de... desea
guardar los cambios.......]
Post by Héctor Miguel
d) aunque puedes 'monitorear' la advertencia [esa la del cuadrito] a
traves del evento '_beforeclose' de thisworkbook...
Post by Héctor Miguel
lo realmente 'importante' [creo yo] y que es necesario
'proteger'... es el evento ->_beforesave<-
Post by Héctor Miguel
[para que siempre que se grabe el archivo, las hojas 'ocultables'
permanezcan ocultas] ;)
Post by Héctor Miguel
te paso un ejemplo usando 3 hojas, los eventos, las propiedades y los codenames mencionados
pantalla = es el codename de la hoja que se mostrara cuando el libro se
abre SIN permiso de usar macros
Post by Héctor Miguel
presentar = es el codename de la hoja que se muestra al habilitar las
macros [la que no queda como 'activa']
Post by Héctor Miguel
procesos = es el codename de la hoja que queda como 'activa' al abrirse
'con permiso' de usar macros
Post by Héctor Miguel
si cualquier duda... comentas?
saludos,
hector.
=== en el modulo de codigo del libro [ThisWorkbook] ===
Dim Cerrando As Boolean, Activa As String
Private Sub Workbook_Open()
MostrarHojas
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' http://j-walk.com/ss/excel/tips/tip78.htm
If Not Me.Saved Then
Select Case MsgBox( _
"¿Desea guardar los cambios efectuados en '" & _
Me.Name & "'?", vbYesNoCancel + vbQuestion)
Case vbYes: OcultarHojas: Cerrando = True: Me.Save
Case vbNo: Me.Saved = True
Case vbCancel: Cancel = True: Exit Sub
End Select
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cerrando Then Exit Sub
Application.ScreenUpdating = False
Activa = ActiveSheet.Name
OcultarHojas
Me.Save
MostrarHojas
Sheets(Activa).Activate
Cancel = True
End Sub
Private Sub MostrarHojas()
Procesos.Visible = xlSheetVisible
Pantalla.Visible = xlSheetVeryHidden
Presentar.Visible = xlSheetVisible
Me.Saved = True
End Sub
Private Sub OcultarHojas()
Pantalla.Visible = xlSheetVisible
Presentar.Visible = xlSheetVeryHidden
Procesos.Visible = xlSheetVeryHidden
End Sub
Continúe leyendo en narkive:
Loading...