DrawingObjects

2 envíos / 0 nuevos
Último envío
juandudas
Imagen de juandudas
Offline
última acción: Hace 2 años 11 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 27/12/2006 - 23:36
Puntos: 2578
DrawingObjects

Hola de nuevo foreros. Espero que esta vez me puedan ayudar también como en ocasiones anteriores.

 

Mi problema es el siguiente:

Tengo un libro Excel que hemos venido utilizando en mi oficina desde hace tiempo sin problemas. Se trata de un libro que tiene unas macros que copian unas figuras de una hoja del libro llamada barras, a la hoja activa, que es la hoja "Planilla".

Sin embargo, al pasar a la versión 2007 ha dejado de funcionar y obtengo el siguiente error:

No se puede obtener la propiedad DrawingObjects de la clase Worksheet

 

Esta es una de las macros, por si sirve de ayuda:

Sub BarraSimple()
    Sheets("BARRAS").Select
    Range("A1").Select
    ActiveSheet.DrawingObjects(Array("Texto 2", "Línea 1")).Select
    Selection.Copy
    Sheets("PLANILLA").Select
    ActiveSheet.Paste
    Sheets("BARRAS").Select
    Range("B1").Select
    Sheets("PLANILLA").Select
End Sub

 

Si me pueden echar una mano se lo agradezco, porque son unas macros que programó una persona que ya no trabaja en la empresa y ninguno hemos podido meterle mano al asunto.

gracias.

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 20 horas 57 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10560
ahora se llama Shapes

DrawingObjects dejó de llamarse así en la versión 97 de Excel para pasar a llamarse Shapes (formas), vamos que no es de ahora (nos vamos haciendo viejos); lo que ocurre es que lo mantenían por temas de compatibilidad y parece que ahora ya no es así ¿quién va a utilizar una hoja de la versión 95 hoy en día?. Pues por ejemplo tú, ya eres un damnificado más de las actualizaciones del Software.

 

Modifica el código de la macro sustituyendo
ActiveSheet.DrawingObjects

Por lo siguiente:
ActiveSheet.Shapes.Range

la línea de código debería quedar así:

ActiveSheet.Shapes.Range(Array("Texto 2", "Línea 1")).Select

Lo de Range es porque estás seleccionando varias formas a la vez, un rango de formas.

Lo he probado con la macro de ejemplo que has enviado y en mi equipo, con este cambio que te comento, funciona perfectamente.

 

A ver si hay suerte.

 

Data Tools Suite
datos y tablas con Excel