Insertar Comentario con Macro

14/10/2008 - 13:14 por maxc | Informe spam
He creado una macro para introducir un comentario en la celda seleccionada,
de una hoja protegida, sin contraseña.
La macro no funciona como debería si vuelvo a insertar al final de la macro
la instrucción para volver a proteger la hoja. ¿Cómo puedo hacer?

¿Hay una forma para pedir al usuario, en la misma macro, de elegir si quiere
el comentario visible u oculto?
¿Además se puede impostar el Tamaño Automático del Comentario?

Adjunto el código:

Sub Commentario()
ActiveSheet.Unprotect
With ActiveCell.AddComment.Shape.OLEFormat.Object
.Text = ""
End With
SendKeys "%IM~"
ActiveCell.Comment.Visible = True
ActiveCell.Comment.Shape.Select True
ActiveCell.Comment.Visible = False
'¡¡¡¡¡¡¡¡¡¡¡¡¡ si lo pongo no funciona!!!!!!!!!!!!!!!!!
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

max

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/10/2008 - 01:20 | Informe spam
hola, !

He creado una macro para introducir un comentario en la celda seleccionada, de una hoja protegida, sin contrasena.
La macro no funciona como deberia si vuelvo a insertar al final de la macro la instruccion para volver a proteger la hoja.
Como puedo hacer?
Hay una forma para pedir al usuario, en la misma macro, de elegir si quiere el comentario visible u oculto?
Ademas se puede impostar el Tamano Automatico del Comentario?



1) cuando ejecutas una instruccion "SendKeys" debes tomar en cuenta que "esta" NO SE EJECUTA sino hasta que...
a) se termina la ejecucion del codigo (y cualquier derivacion a otro/s codigo/s)
b) se muestre algun dialogo que requiera de la intervencion del usuario
-> y deberas tener muy en cuenta cual pudiera ser el objeto "activo" cuando se llegara a ejecutar el "SendKeys"

2) por la secuencia de letras en el sendkeys, (pre/a)sumo que intentas que el comentario lleve una imagen de fondo -???-

3) finalmente, el codigo no falla por la reproteccion de la hoja, sino por el sendkeys o alguna otra eventualidad -???-

haz una prueba con este ejemplo (solo asegura una ruta que contenga la imagen que se inserta en el comentario .JPG)

Sub Abcd()
ActiveSheet.Unprotect
With ActiveCell
If .Comment Is Nothing Then .AddComment "": .Comment.Visible = True
.Comment.Shape.Fill.UserPicture "c:uta y sub\carpetas donde esta\tu archivo.jpg"
End With
ActiveSheet.Protect
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub Commentario()
ActiveSheet.Unprotect
With ActiveCell.AddComment.Shape.OLEFormat.Object
.Text = ""
End With
SendKeys "%IM~"
ActiveCell.Comment.Visible = True
ActiveCell.Comment.Shape.Select True
ActiveCell.Comment.Visible = False
'¡¡¡¡¡¡¡¡¡¡¡¡¡ si lo pongo no funciona!!!!!!!!!!!!!!!!!
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Respuesta Responder a este mensaje
#2 maxc
15/10/2008 - 11:23 | Informe spam
Hola Héctor,
He leído tus sugerencias y probado tu código, pero no consigo el resultado
esperado.
El problema es que lo que se VBA lo he aprendido grabando o copiando macros,
para luego modificarlas según las exigencias con la ayuda del F1. Así que voy
probando o pidiendo ayuda.

Te explico lo que quisiera obtener con una macro “para insertar comentario
en la celda seleccionada”:
1) desproteger hoja
2) permitir al usuario de insertar el texto que desea en el comentario
3) Ajustar automáticamente el tamaño del cuadro del comentario
4) Pedir al usuario si quiere mostrar o ocultar el comentario
5) Volver a proteger la hoja

Con mi macro solo consigo los puntos 1 y 2.
Si el problema es la instrucción SendKeys (que copié de otro código),
intuitivamente creo se podría utilizar un Userform (es correcto?), aunque
todavía no soy muy experto en su utilización.

max


"Héctor Miguel" wrote:

hola, !

> He creado una macro para introducir un comentario en la celda seleccionada, de una hoja protegida, sin contrasena.
> La macro no funciona como deberia si vuelvo a insertar al final de la macro la instruccion para volver a proteger la hoja.
> Como puedo hacer?
> Hay una forma para pedir al usuario, en la misma macro, de elegir si quiere el comentario visible u oculto?
> Ademas se puede impostar el Tamano Automatico del Comentario?

1) cuando ejecutas una instruccion "SendKeys" debes tomar en cuenta que "esta" NO SE EJECUTA sino hasta que...
a) se termina la ejecucion del codigo (y cualquier derivacion a otro/s codigo/s)
b) se muestre algun dialogo que requiera de la intervencion del usuario
-> y deberas tener muy en cuenta cual pudiera ser el objeto "activo" cuando se llegara a ejecutar el "SendKeys"

2) por la secuencia de letras en el sendkeys, (pre/a)sumo que intentas que el comentario lleve una imagen de fondo -???-

3) finalmente, el codigo no falla por la reproteccion de la hoja, sino por el sendkeys o alguna otra eventualidad -???-

haz una prueba con este ejemplo (solo asegura una ruta que contenga la imagen que se inserta en el comentario .JPG)

Sub Abcd()
ActiveSheet.Unprotect
With ActiveCell
If .Comment Is Nothing Then .AddComment "": .Comment.Visible = True
.Comment.Shape.Fill.UserPicture "c:uta y sub\carpetas donde esta\tu archivo.jpg"
End With
ActiveSheet.Protect
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
> Sub Commentario()
> ActiveSheet.Unprotect
> With ActiveCell.AddComment.Shape.OLEFormat.Object
> .Text = ""
> End With
> SendKeys "%IM~"
> ActiveCell.Comment.Visible = True
> ActiveCell.Comment.Shape.Select True
> ActiveCell.Comment.Visible = False
> '¡¡¡¡¡¡¡¡¡¡¡¡¡ si lo pongo no funciona!!!!!!!!!!!!!!!!!
> 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
> End Sub



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