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


0