hola a todos, (aviso: al final a vuelto a slirme otro de mis tomos/rollos)
a ver si podeis echarme un cable una vez mas.
tengo este codigo que me ha estado funcionando sin problemas hasta hoy: (y que ahora parece volver a funcionar)
Function AbrirLibro() As Boolean
On Error Resume Next
AbrirLibro = Application.Dialogs(xlDialogOpen).Show
If Not AbrirLibro Then MsgBox "No se ha abierto ningun archivo"
End Function
el motivo del uso de On Error Resume Next, es que una vez abierto el cuadro de dialogo, si, pej., se intentaba abrir un
archivo protegido y pedirte la contraseña, en caso de cancelar se producia un error (el 1004, si no me equivoco).
el caso es que tras llevar tiempo funcionando sin problemas, de repente me ha empezado a aparecer el mensaje 'se ha
interumpido la ejecucion del codigo', ademas en cualquiera de los casos excepto aceptando el cuadro de dialogo, y, a
pesar de haberle dado mil vueltas no he conseguido salir de ahi ni encontrar la causa hasta reiniciar el equipo
aunque este codigo es solo la parte donde el problema se ha hecho mas evidente, ya llevaba un rato con cosas raras
(algun cuelgue al que no he conseguido encontrar el motivo) y en concreto una cosa que quizas sea la causa misma del
problema:
estaba haciendo pruebas para obtener diferentes numeros y descripciones de error con algo parecido a esto. (no es el
mismo codigo pues el original directamente desaparecio /se borro al ejecutarlo sin que aparentemente pasara nada malo,
aparte de cerrar otro libro que estaba abierto en ese momento y que quizas fuera el activo en ese momento, pero no el
contenedor del codigo)
Sub escribir_Errores()
Dim msj As String
msj = ""
With ThisWorkbook
On Error Resume Next
Workbooks.Open "nombreFalsoDeLibro" & "\" & .Path
If Err.Number <> 0 Then _
msj = msj & "Error por libro inexistente" & vbCr & _
vbCr & "Nº Error = " & Err.Number & vbCr _
& vbCr & "desripcion = " & Err.Description & vbCr & vbCr
On Error GoTo 0
On Error Resume Next
Workbooks.Open .FullName
If Err.Number <> 0 Then _
msj = msj & "Error por libro ya abierto" & vbCr & _
vbCr & "Nº Error = " & Err.Number & vbCr & _
vbCr & "desripcion = " & Err.Description
On Error GoTo 0
End With
Debug.Print msj
End Sub
al cabo de un rato es cuando me ha empezado a dar los problemas. Es posible que el codigo fuera condicionando la
activacion/desactivacion del 'tratamiento' de errores (no estoy seguro pues, aunque mi intencion era hacer una prueba de
este tipo, al no conservarse el codigo, y con todo el trajin que he tenido despues, no estoy del todo seguro si era
esta). Algo asi :
On Error Resume next
codigo
If Err.Number <> 0 Then
on error goto 0
on error resume next
codigo
If Err.Number <> 0 Then
on error goto 0
on error resume next
..
me he tirado un buen rato volviendome loco intentando encontrar el motivo de que no me funcionara (o eso creo) la
instruccion 'On Error Resume Next'. Aunque la cosa parece haberse resuelto reiniciando el equipo, no he conseguido
encontrar la causa, salvo que es muy posible que el archivo en el que me ha empezado el problema este a punto de
corromperse. Pero lo curioso es que ni cerrando ese archivo, ni cerrando Excel y volviendolo abrir con un libro nuevo he
conseguido arreglar el tema. Solo parece (toco madera) haberse resuelto reiniciando el equipo.
bueno, aprte del rollo que me acabo de tirar, no se si mas o menos se ve lo que me ha ocurrido, pero si alguien ve por
donde puede ir el problema le agradecere su ayuda
un saludo y hasta pronto
Ivan
Leer las respuestas