Captura de errores en VBA

Osasa54

New Member
Joined
Sep 10, 2002
Messages
31
Hola, estoy haciendo una macro dentro de la cuál hago una búsqueda de un dato concreto que he asignado a una variable en los valores de un rango de celdas. El problema viene cuando el dato en cuestion no se encuentra en estas celdas. Es entonces cuando da un error y para la ejecución de la macro. ¿Seria posible detectar el código de ese error para controlarlo de algún modo y poder proseguir con la macro?

Un saludo, y muchas gracias....
 

Excel Facts

Can Excel fill bagel flavors?
You can teach Excel a new custom list. Type the list in cells, File, Options, Advanced, Edit Custom Lists, Import, OK
Claro. Hay un par de opciones. En ambos senderos se usa las propiedades .Number y .Description del objeto Err
  • Usa un On Error Resume Next y después analiza el número.
  • Usa un On Error GoTo myErrorHandler y allí processa el error.
Ejemplo 1

<font face=Courier New><SPAN style="color:#00007F">Sub</SPAN> ErrUno()
    <SPAN style="color:#00007F">Dim</SPAN> r <SPAN style="color:#00007F">As</SPAN> Range
    <SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">Resume</SPAN> <SPAN style="color:#00007F">Next</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> r = Range("BuenosDias")
    <SPAN style="color:#00007F">If</SPAN> Err.Number <> 0 <SPAN style="color:#00007F">Then</SPAN>
        MsgBox "Rango ""BuenosDias"" no existe." & vbCr & _
               "El error tiene el número: " & Err.Number & vbCr & _
               "Que corresponde a: " & Err.Description
        <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
    <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
    r.Interior.Color = vbYellow
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
</FONT>
Ejemplo 2
<font face=Courier New>
<SPAN style="color:#00007F">Sub</SPAN> ErrDos()
<SPAN style="color:#007F00">' Corre esto una vez sin un rango nombrado «BuenosDias»</SPAN>
<SPAN style="color:#007F00">' y después una segunda vez CON un rango nombrado «BuenosDias» existente.</SPAN>
    
    <SPAN style="color:#00007F">Dim</SPAN> r <SPAN style="color:#00007F">As</SPAN> Range
    <SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> ErrorHandler
    <SPAN style="color:#00007F">Set</SPAN> r = Range("BuenosDias")
    r.Interior.ColorIndex = 99
    <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>

ErrorHandler:

    MsgBox "Hemos topado con un error durante ejecutar el macro." & vbCr & _
           "El error tiene el número: " & Err.Number & vbCr & _
           "Que corresponde a: " & Err.Description

<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>


</FONT>
 
Upvote 0

Forum statistics

Threads
1,223,947
Messages
6,175,559
Members
452,652
Latest member
eduedu

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top