Visual Basic para Aplicaciones - Error de automatización, muestro código

Life is soft - evento anual de software empresarial
 
Vista:

Error de automatización, muestro código

Publicado por mapg (3 intervenciones) el 26/05/2006 07:10:37
Hola a tod@s:

El siguiente código sirve para colocar un boton en una hoja de Excel recien creada, todo ello en tiempo de ejecución. El problema se produce cuando trato de asignarle código al boton, concretamente un error de automatización que provoca incluso el cierre de Excel. Tengo localizado la fuente del error que es la clase VBComponents pero no sé como evitarlo:

' Se crea la hoja de trabajo nueva
'
'
Dim HojaNueva As Worksheet
Set HojaNueva = Worksheets.Add
HojaNueva.Name = "Nueva Hoja"

'Se crea el boton
'
'
Dim Boton As OLEObject
Set Boton = HojaNueva.OLEObjects.Add("Forms.CommandButton.1")
'
'
' Se asigna código al boton,
'
'
codigo = "Private Sub CommandButton1_Click()" & vbCrLf
codigo = codigo & "Call Procedimiento" & vbCrLf
codigo = codigo & "End Sub"
'
'
' El problema está aquí
'
With ActiveWorkbook.VBProject.VBComponents(HojaNueva.CodeName).CodeModule
linea = .CountOfLines + 1
.InsertLines linea, codigo
End With

He probado con ...VBComponents("Nueva Hoja") pero me dice " indice fuera de intervalo".
Tambien he probado con VBComponents("HojaNueva.Name"), que viene a ser lo mismo que antes pero no dá resultado. La única manera es a través del nombre de código de la hoja recien creada, pero como os digo, da un error grave de automatización y se cierra todo.

Si hay alguien que pueda ayudarme con ésto le estaré enórmemente agradecido.

En cualquier caso, les doy las gracias a todos por adelantado.

Saludos.
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

RE:Error de automatización, muestro código

Publicado por JuanC (243 intervenciones) el 27/05/2006 17:27:17
Probé el código (WinMe/Excel 2000) y anduvo bien...
También probé con AddFromString en lugar de Insert
y no hubo problemas...

ActiveWorkbook.VBProject.VBComponents(HojaNueva.CodeName).CodeModule.AddFromString codigo

Fijate si el error no está al crear la hoja, es decir, no se crea
correctamente y por eso no puede agregarle el código.
Otra cosa no se me ocurre...

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

RE:Error de automatización, muestro código

Publicado por mapg (3 intervenciones) el 27/05/2006 21:20:53
Hola JuanC:

Antes de nada darte las gracias por tus observaciones. He vuelto a probar el código en Excel 2000 bajo Win XP y va sin problema alguno. El error salta cuando se ejecuta en Excel 2000 bajo Win 2000 o, lo que es más extraño todavía, en Excel 2003 bajo Win XP . A estas alturas ya pienso que es un error debido a incompatibilidades de unas versiones con otras, que no se debe a errores en la programación en sí. Seguiré buscando en esta línea a ver si encuentro alguna solución.

De nuevo muchas gracias. Hasta otra.

Saludos.
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