Visual Basic para Aplicaciones - Código VBA no funciona en Excel 2010

Life is soft - evento anual de software empresarial
 
Vista:

Código VBA no funciona en Excel 2010

Publicado por Pablo (77 intervenciones) el 24/05/2013 12:53:16
En una hoja Excel 2003 tengo una casilla de verificación que al activarla abre un cuadro amarillo dónde se pueden hacer anotaciones:

El código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub activar_recuadro()
 
 
    Dim shp As Shape
    Dim myDocument As Worksheet
 
    If Range("A1").Value = True Then
 
    Set myDocument = Worksheets("hoja1")
    Set shp = myDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 188, 213, _
        227, 72)
    With shp
        .Name = "rectangulo_amarillo"
        .Fill.ForeColor.RGB = RGB(255, 0, 255)
        .Fill.Solid
    End With
    'Texto del interior del recuadro amarillo:
    With shp.TextFrame
        .Characters.Text = "DIRECCION DE ENTREGA." & _
        Chr(13) & "Empresa:   " & Chr(13) & "Dirección:   " & Chr(13) & "" & Chr(13) & "Contacto:   "
    End With
 
    Else
'Cierre del recuadro.
 
    ActiveSheet.Shapes("rectangulo_amarillo").Delete
 
 
    End If
 
End Sub


Pero en Excel 2010 no funciona. En principio porque parece ser que tengo deshabilitadas mis propias macros por peligrosas. He descubierto cómo firmar mis macros digitalmente y ya parece ser que no me las deshabilita, pero no funcionan.
Si activo la casilla no se abre el cuadro y al desactivarla me sale un error en tiempo de ejecución que marca:
1
ActiveSheet.Shapes("rectangulo_amarillo").Delete
como fuente del error. Eso en principio me hace pensar que la macro se ejecuta (aunque el recuadro no sale).
Pregunta: ¿Qué diferencias en la programación VBA hay entre Excel 2003 y Excel 2010 para que no me funcione.
Es que no sé dónde acudir.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

Código VBA no funciona en Excel 2010

Publicado por JuanC (565 intervenciones) el 24/05/2013 13:43:22
el problema viene por el valor de la celda A1
si ese valor es distinto de VERDADERO, intenta eliminar 'rectangulo_amarillo', pero
si éste no existe, produce error
usando
On Error Resume Next
lo podés evitar

deberías tener mejor control de la celda A1...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código VBA no funciona en Excel 2010

Publicado por Pablo (77 intervenciones) el 24/05/2013 15:11:28
Bueno, quizá no lo estoy haciendo bien.
Y digo que no lo estoy haciendo bien, porque el estado de la casilla de verificación se lo he asignado a la casilla A1. Verdadero cuando está activada y falso cuando no.
¿Como puedo controlar si la casilla de verificación está activada o no?.
No es un formulario, es una hoja excel a la que le he añadido un control casilla de verificación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

Código VBA no funciona en Excel 2010

Publicado por JuanC (565 intervenciones) el 24/05/2013 15:36:07
no te la compliques, hacelo así

On Error Resume Next
ActiveSheet.Shapes("rectangulo_amarillo").Delete


Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código VBA no funciona en Excel 2010

Publicado por Pablo (77 intervenciones) el 24/05/2013 18:42:57
Muchisimas gracias Juan.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar