Jump to content
  • 33 ¿Te resultaría interesante una carpeta sobre Python para Excelen el foro?

    1. 1. ¿Te resultaría interesante una carpeta sobre Python para Excel en el foro?


      • Sí! Me interesa
      • No me interesa.
      • Otros (Escribe tu respuesta en el tema)

Excel "Peta" intentando leer un comentario en una hoja en concreto


verzulsan

Recommended Posts

Hola,

Adjunto un archivo en donde me está dando problemas una hoja en concreto, al crear un comentario y luego intentar leerlo, excel "Peta" y se cierra en versiones anteriores a 2007, a partir de 2007, simplemente el comentario no aparece por que seguramente debe ser borrado por la macro de la que hablo abajo. Lo raro es que es una macro que se activa por cambio de seleccion (y no se por que, pero creo que toma el raton flotante sobre el comentario como cambio de seleccion), tras lo cual, intenta borrar el comentario como si fuera un shape mas y... crash.

he detectado que el codigo que da problemas es el siguiente, perteneciente a la hoja "BD"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Si hay Shapes se borran todas las shapes
If ActiveSheet.Shapes.Count > 0 Then
For Each s In ActiveSheet.Shapes
s.Delete 'Borrado de todas las shapes de la hoja
Next
End If
End Sub[/CODE]

El codigo lo único que hace es borrar todos los objetos shapes cuando se cambia de celda.

Solo se me ocurre ponerle un condicional para que si es un comentario no lo borre, pero no entiendo por que se activa si no he cambiado de celda.

Gracias de antemano por la ayuda.

Un saludo.

[size=1]Por cierto' date=' a los que le entre curiosidad sobre "qué hace el archivo". Es un prototipo que uso para estudiar, al hacer doble click sobre una celda accede a un archivo de una carpeta con X archivos word, incrustando en la hoja como shape el archivo que hace referencia a la definicion donde has hecho doble click. Subo a megaupload las definiciones por si teneis curiosidad de como queda el prototipo (el primer archivo esta ya subrayado de un examen que tuve el año pasado, el segundo está sin subrayar, un examen que tengo la semana que viene).

CLICK PARA DESCARGAR[/size]

Temario Sistemas (8,9,10).zip

Link to comment
Share on other sites

Bueno ya solucioné el tema agregando un condicional a la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveSheet.Shapes.Count > 0 Then
For Each s In ActiveSheet.Shapes
If s.Type <> 4 Then s.Delete 'Borrado de todas las shapes de la hoja
Next
End If
End Sub[/CODE]

No pasaba que ejecutara la macro al navegar sobre el comentario, sino que un comentario es un shape, y nada mas crearlo, se produce el cambio de seleccion, es entonces cuando el shape es borrado pero excel sigue mostrando el icono de "comentario incrustado" cuando en realidad no hay ya nada, al intentar acceder a el, excel peta por que no han tenido en cuenta esta macro destroza shapes.

El tipo de shape de los comentarios es "4". Excel deberia borrar el comentario tras detectar que ya no hay shape asociado a el. Es un bug que deberiais avisar a excel, asi ganais otro puntito para la web ;)

Un saludo!

Link to comment
Share on other sites

Nada, sigue petando pero ahora de otra forma.

Con la nueva macro, creo el comentario, y me deja verlo, pero tras acceder a cualquier shape haciendo doble click en la definicion, algo cambia, cuando vuelvo a poner el raton sobre el comentario, excel peta.

Es decir, me sigue borrando el comentario de la celda incluso con el condicional type=4. Primero lo toma como type=4 y no lo borra, pero tras incrustar otro shape, ya no es type 4...

¿Alguna idea?

Link to comment
Share on other sites

Vale, definitivamente Tema solucionado.

Se me olvidó que tenia mas funciones que eliminaban las shapes, solo poner el condicional type 4 a las demas y funciona a la perfeccion con comentarios.

Un saludo y podeis dar el tema por solucionado. No olvideis avisar a Microsoft sobre el bug de comentario sin shape.

Link to comment
Share on other sites

Hola Mr.Betis:

Lo siento, pero a mi me funciona correctamente, eso si, el triangulito rojo, sigue visible después de de seleccionar otra celda distinta a la del comentario y eliminar el comentario.

Demasiadas versiones de Excel. Olvida el pasado, ya no volverá.

Saludos.

Link to comment
Share on other sites

Hola Mr.Betis:

JAJAJA, ese Master Macroman.

Arriba dije que en 2007 no peta pero tampoco enseñaba el comentario, lo puse cuando aun no sabia que en realidad no habia comentario que mostrar por que la shape estaba borrada.

Lo de que se quede el triangulito rojo tras borrar la shape, es un poco absurdo ya que si no hay shape asociada, el triangulito rojo deberia desaparecer tambien. Pero bueno, se soluciona teniendo un poco de cuidado al usar macros para borrar masivamente las shapes con un "if(shape=4) no borrar"

Un saludo!

Link to comment
Share on other sites

eso si, el triangulito rojo, sigue visible después de de seleccionar otra celda distinta a la del comentario y eliminar el comentario.

Pero si eliminamos un comentario manualmente, no queda nada (ni si quiera el triangulito rojo)

Lo que noto que hace la macro es borrar solo el contenido del comentario, y pierde la propiedad de ver el comentario cuando se pasa el raton sobre el triangulito, solo queda activa la de modificar comentario

No creen que falta algo? para eliminar totalmente el comentario... (Cells.Delete esta funciona pero elimina todo)

Saludos

Link to comment
Share on other sites

jaja definitivamente Antoni, necesito vacaciones jaja no volvere a comentar cuando tenga mucho trabajo (despues de un trabajito que me han enconmendado del cual tu ya sabes)

Me encerre que los COMMENTS debia funcionar como activesheet.shapes (eres mi heroe)

Saludos verzulsan

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy