CAPTURA DE ERRORES

5 envíos / 0 nuevos
Último envío
fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 4 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
CAPTURA DE ERRORES

Hola:

Tengo una macro que me recorre una columna, y va buscando los valores de cada celda en otra hoja de la siguiente forma:

on error goto nada:

For i = 1 To ultimovalor
    If ActiveCell.Offset(i, 0).Value > fechainicio And ActiveCell.Offset(i, 0).Value < fechafinal Then

 With Worksheets("SALIDA_2010").Columns("B:B")
              
                If Not IsError(.Find(presupuesto, LookIn:=xlValues, loookat:=xlWhole)) Then
                Set C = .Find(presupuesto, LookIn:=xlValues, loookat:=xlWhole)
                If Not C Is Nothing Then

                material = .Range("M" & i).Value

  End If
  End If

nada:

end if

next

 

 

Como podeis ver, tengo 2 controles de error.

Los errores se controlan la primera vez que ocurren, pero si en el siguiente ciclo se vuelven a repetir, no puedo controlarlos.

Me podeis ayudar?

Un saludo

 

 

 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 29 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
¿y el end with?

al poner una sentencia On Error GoTo... se interceptan todos los errores durante la ejecución.

fíjate que cualquier error se dirige a una sentencia End If

¿qué pasa si el error no se produce dentro de ese bloque if - end if ?

por cierto ¿dónde está el End With?

Prueba con F8 para ejecutar estas instrucciones paso a paso, para ver dónde salta con el error y qué hace

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 4 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
Re: ¿y el end with?

Quizás no me haya expresado bien.

Depurando con F8, me encuentro que la primera vez que ocurre el error lo depura correctamente llendose al control de errores, y ejecutandose el next.

El problema es cuando vuelvo a ejecutar el for y se encuentra de nuevo con otro error, pues directamente me sale el error en plantalla y no lo depura.

El End With no está porque solo he mandado una parte del código.

Si necesitas que lo envíe entero lo envío.

Un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 29 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: ¿y el end with?

me huele a que estás todavía dentro del tratamiento de errores.

cuando se produce un error en el tratamiento de errores no se intercepta

no sales del tratamiento de errores hasta que no pongas un Resume o hasta que termine el procedimiento

la ayuda de vba dice esto: "Si se produce un error mientras un controlador está activo (entre la aparición del error y una instrucción Resume, Exit Sub, Exit Function o Exit Property), el controlador de errores del procedimiento actual no puede tratarlo"

Además, eso de poner el End If y el Next en el tratamiento de errores es muy raro, imagina que tienes un error en otra parte fuera del bucle, lo estarías enviando a un next.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 4 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
Re: ¿y el end with?

Pues si.

Se me habia olvidado poner el Resume

Muchisimas gracias