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
 

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

Preguntas similares