Diferencias de error entre versiones (error 1004)

24/05/2006 - 18:40 por ppozap | Informe spam
Hola a tod@s.

Tengo una aplicación bastante compleja que antes la utilizaba una
persona que trabajaba con Excel 5 (si, si, como lo leeis, Excel 5)
porque no sabia arreglar los errores de conversion que le daban las
macros al actualizarlo a una version mas reciente de Excel.

Bien, pues ahora la utilizo yo y me ha tocado convertirlo. El problema
me viene porque hay unos controles de error que no funcionan o para ser
mas exactos no funcionan bien en todas las macros.

Se manejan datos de 3 o 4 archivos pero estos son como "gestores" es
decir hacen una serie de calculos dependiendo de los datos que
traspases de otros archivos, de manera que se abre un gestor, se
traspasan datos (no vinculandolos) y cuando se terminan y se cierra el
gestor, sigue vacio.

Hay unas macros que llaman a los archivos de datos para copiar estos y
si no estan abiertos los abren. Aqui esta el problema porque eso se
hace con un control de error. El error que en la anterior version
detectaba este problema era el 1004, pero ahora no lo reconoce, se
queda parado en esa parte del procedimiento. Me he mirado los errores
detectables y el error 1004 no aparece.
Os copio el codigo tal y como esta "traducido" a la nueva version:

Sub AbrirCombina()
On Error GoTo ControlErr
Workbooks("COMBINA.XLS").Activate
Exit Sub

ControlErr:
Select Case Err
Case 1004 ' Error "No esta abierta la hoja COMBINA".
ChDir "c:\Proyectos"
Workbooks.Open Filename:="COMBINA.XLS"
Case Else
End Select
Resume
End Sub

En la ventana de depuracion se queda parado en la linea "Select Case
Err" y con una inspeccion de variable no me manda ningun numero de
error.

¿El control equivalente tendría que hacerse con el error 9 o hay
otro? ¿Conoceis otra forma de hacerlo?

Gracias por anticipado,

Pedro
 

Leer las respuestas

#1 Miguel Zapico
24/05/2006 - 20:34 | Informe spam
Puedes probar a usar Err.Number en lugar de Err:
Select Case Err.Number
Con esto al menos la macro deberia pasar de ese punto.

Miguel.

"" wrote:

Hola a

Tengo una aplicación bastante compleja que antes la utilizaba una
persona que trabajaba con Excel 5 (si, si, como lo leeis, Excel 5)
porque no sabia arreglar los errores de conversion que le daban las
macros al actualizarlo a una version mas reciente de Excel.

Bien, pues ahora la utilizo yo y me ha tocado convertirlo. El problema
me viene porque hay unos controles de error que no funcionan o para ser
mas exactos no funcionan bien en todas las macros.

Se manejan datos de 3 o 4 archivos pero estos son como "gestores" es
decir hacen una serie de calculos dependiendo de los datos que
traspases de otros archivos, de manera que se abre un gestor, se
traspasan datos (no vinculandolos) y cuando se terminan y se cierra el
gestor, sigue vacio.

Hay unas macros que llaman a los archivos de datos para copiar estos y
si no estan abiertos los abren. Aqui esta el problema porque eso se
hace con un control de error. El error que en la anterior version
detectaba este problema era el 1004, pero ahora no lo reconoce, se
queda parado en esa parte del procedimiento. Me he mirado los errores
detectables y el error 1004 no aparece.
Os copio el codigo tal y como esta "traducido" a la nueva version:

Sub AbrirCombina()
On Error GoTo ControlErr
Workbooks("COMBINA.XLS").Activate
Exit Sub

ControlErr:
Select Case Err
Case 1004 ' Error "No esta abierta la hoja COMBINA".
ChDir "c:\Proyectos"
Workbooks.Open Filename:="COMBINA.XLS"
Case Else
End Select
Resume
End Sub

En la ventana de depuracion se queda parado en la linea "Select Case
Err" y con una inspeccion de variable no me manda ningun numero de
error.

¿El control equivalente tendría que hacerse con el error 9 o hay
otro? ¿Conoceis otra forma de hacerlo?

Gracias por anticipado,

Pedro


Preguntas similares