Excel - se ha producido el error '-2147024809 (80070057)' /excel2007

   
Vista:

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por Juan Carlos j.zambrano1908@gmail.com (3 intervenciones) el 25/11/2014 17:20:50
Estimados, favor necesito de su ayuda!

Tengo el siguiente error al ejecutar una macro en excel 2007. Esta macro está creada en vb6 y que ejecuta bien en excel 2003.

El error me dice: se ha producido el error '-2147024809 (80070057)' en tiempo de ejecucion.
Al depurar la ejecucion me arroja al codigo donde se encuentra:

ActiveSheet.Shapes("Rectangle 7").Select
Selection.Delete


Por lo que veo este metodo esta exportando data a una hoja temporal la cual se desbloquea y bloquea automaticamente, y es por eso yo creo que el mensaje tambien dice "La seleccion de las formas solicitadas esta bloqueada".

La curiosidad es que al comentar las lineas;

ActiveSheet.Shapes("Rectangle 7").Select
Selection.Delete


toda la data se traspasa, pero luego la macro se pega.

1.- ¿sera que debo publicar el activesheet de otra forma en xl2007?
2.- ¿hay algun metodo que estoy ocupando mal?
3.- ¿ serán que las librerias en xl2007 no consideran este tipo de metodo?


Este es el cogido antes de llegar al punto de depuracion:

' DIVIDE ULTIMO PAPEL
TC(FILA) = TC(FILA) / Div
DURATION(FILA) = DURATION(FILA) / Div
TM(FILA) = TM(FILA) / Div
EXP1_ANEXAR CTL
'****************
WS.Range("A18") = "FAMILIA BCI"
WS.Range("B18") = "MONEDA"
WS.Range("C18") = "CANTIDAD"
WS.Range("D18") = "NOMINAL"
WS.Range("E18") = "VP T COMPRA"
WS.Range("F18") = "VP T MCDO"
WS.Range("G18") = "TASA COMPRA"
WS.Range("H18") = "TASA MCDO"
WS.Range("I18") = "DURATION"
WS.Range("J18") = "MTM"
'****************************************
' EDITA TITULOS

ActiveSheet.Shapes("Rectangle 7").Select
Selection.Delete

Columns("C:C").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit
Columns("I:I").EntireColumn.AutoFit
Columns("C:C").ColumnWidth = 8.86
Columns("E:E").ColumnWidth = 14.14
Columns("G:G").ColumnWidth = 8.71
Range("G18").Select
Selection.Copy
Range("H18:J18").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("J18").Select
Columns("H:H").ColumnWidth = 8.86
ActiveWindow.LargeScroll ToRight:=-1
Range("A19").Select


Espero sus comentarios.
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 LaO

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por LaO (67 intervenciones) el 25/11/2014 18:06:29
Hola Juan Carlos,

Es posible que el codigo que señala el error está intentando interactuar con un shape que no existe ó cuyo id no es el realmente asignado. Prueba modificar esa parte de la siguiente manera en donde primero verificamos que realmente exista antes de proceder con su eliminación:

-------------------------------------------------------------->

Dim objImage As Shape
Dim sImage As String

'vars
sImage = "Rectangle 7"

For Each objImage In ThisWorkbook.ActiveSheet.Shapes

If objImage.Name = sImage Then

objImage.Delete
Exit For

End If

Next objImage

-------------------------------------------------------------->

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

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por juan (3 intervenciones) el 25/11/2014 19:04:25
Estimado,

Incorporé el codigo, pero ahora me arroja el error: "el valor especificado se encuentra fuera de los limites"

Al depurarlo me arroja al: objImage.Delete

se debe a que no se esta condicionando bien?
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 LaO

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por LaO (67 intervenciones) el 25/11/2014 19:24:30
Juan Carlos,

Asumo que el valor especificado es "Rectangle 7" el cual debe corresponder al nombre del shape que la rutina intenta eliminar. Para asegurarte de cuales son los nombres de los shapes que tienes disponibles en la hoja prueba esta rutina y verificas si el nombre que pasas para eliminación es correcto:

------------------------------------------------------------------------------->

Sub sbGetShapesName()

Dim objImage As Shape

For Each objImage In ThisWorkbook.ActiveSheet.Shapes

MsgBox "Shape : " & objImage.ID & " " & objImage.Name, vbInformation, "Mensaje"

End If

Next objImage

------------------------------------------------------------------------------->

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

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por juan (3 intervenciones) el 25/11/2014 21:49:39
Estimado,

Efectivamente el nombre que me arroja esa rutina es :

Shape: 33794 AutoShape 2

Osea que en vez de colocar sImage = "Rectangle 7" deberia ir con otro nombre'...lo malo que el nombre que me arroja la rutina es numero & palabras (33794 AutoShape 2)

ahora no se como proceder, dado que al ejecutarlo si corre en xls2007 pero al finalizar se pega
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 LaO

se ha producido el error '-2147024809 (80070057)' /excel2007

Publicado por LaO (67 intervenciones) el 25/11/2014 22:55:32
Juan Carlos,

El nombre real del shape es "AutoShape 2" y no "Rectangle 7" que evidentemente no existe. Así las cosas, asigna el nombre del shape que deseas eliminar a la variable sImage como te indique en la rutina anterior, con eso debe solucionarse el problema.

Por otro lado, no tengo claro a que te refieres con que se pega ...La rutina debe finalizar eliminando el shape que le pases y eso es todo.

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