If combineren met on error resume next

Status
Niet open voor verdere reacties.

jerogub

Gebruiker
Lid geworden
12 dec 2007
Berichten
14
Hey,

Is er een manier om IF te combineren met ON ERROR RESUME NEXT?

Ik heb eerder een vraag naar een zoekfunctie gepost die de gezochte tabblad activeert. In die zoekfunctie staan alle namen van alle tabbladen. Nu is het probleem dat als ik een tabblad verwijder, en later zoek ik naar dit tabblad, dan krijg ik een foutmelding. Ik dacht dit op te lossen met ON ERROR RESUME NEXT. Maar nu blijkt dat hij mijn "oplossing" ook gebruikt als de foutmelding niet plaats vind. Hier de code:

Code:
If Not Range("A:A").Find(colname, , xlValues, xlPart) Is Nothing Then
    Range("A:A").Find(colname, , xlValues, xlPart).Select
    If MsgBox("Is dit de collega die je zoekt?", vbYesNo) = vbYes Then
    gevonden = "true"
    naam = ActiveCell.Value
    On Error Resume Next
    Worksheets("index").Activate
    Range("A:A").Find(colname).Select
    Selection.Delete
    Unload Me
    Exit Sub
    Else

Het is dus de bedoeling dat de macro de oplossing alleen gebruikt als de foutmelding optreed.

Heeft iemand hier een oplossing voor?

Alvast bedankt!
 
Laatst bewerkt:
Code:
If Not Range("A:A").Find(colname, , xlValues, xlPart) Is Nothing Then
    Range("A:A").Find(colname, , xlValues, xlPart).Select
    If MsgBox("Is dit de collega die je zoekt?", vbYesNo) = vbYes Then
    gevonden = "true"
    naam = ActiveCell.Value
    [COLOR="Red"]On Error goto fout[/COLOR]
    [COLOR="red"]fout:[/COLOR] Worksheets("index").Activate
    Range("A:A").Find(colname).Select
    Selection.Delete
    Unload Me
    Exit Sub
    Else

Ik denk dat het zo wel moet lukken
 
Thanks! Dat was de oplossing die ik zocht!! :thumb::thumb::thumb:
 
Dit is al wat betere code:

Code:
Dim rZoekCel As Range
Dim sNaam As String
Dim bGevonden As Boolean

Set rZoekCel = Range("A:A").Find(colname, , xlValues, xlPart)

If Not rZoekCel Is Nothing Then

    sNaam = rZoekCel.Value
        
    If MsgBox("Is " & sNaam & " de collega die je zoekt?", vbYesNo) = vbYes Then
        
        bGevonden = True
    
        On Error GoTo fout
fout:     Worksheets("index").Activate
        rZoekCel.ClearContents
        Unload Me
        Exit Sub
        Else

Wigi
 
Hey,

Ja die is inderdaad wat beter. Ik zelf werk pas twee weken met macro's dus ik doe bepaalde dingen soms moeilijker dan normaal. In ieder geval bedankt Wigi :thumb: :thumb: Ik zal hieronder even de complete code posten dan kunnen misschien ook andere mensen gebruik maken hiervan. Zoals je kunt zien heb ik je code een beetje aangepast.

Code:
Private Sub Ok_Click()

Dim naam As String
Dim colname As String
Dim rZoekCel As Range
Dim sNaam As String
Dim bGevonden As Boolean
Dim bGevonden2 As Boolean

colname = Me!colname
gevonden = "false"
naam = ""

Worksheets("index").Visible = True
Worksheets("index").Activate
Set rZoekCel = Range("A:A").Find(colname, , xlValues, xlPart)
If Not rZoekCel Is Nothing Then
    sNaam = rZoekCel.Value
    Range("A:A").Find(colname, , xlValues, xlPart).Select
    If MsgBox("Is " & sNaam & " de collega die je zoekt?", vbYesNo) = vbYes Then
        bGevonden = True
        On Error GoTo fout
        Worksheets(sNaam).Activate
        Worksheets("index").Visible = xlVeryHidden
        Exit Sub
    Else
    Do Until bGevonden2 = True
        If Not Range(ActiveCell(2, 1), "A65536").Find(colname, , xlValues, xlPart) Is Nothing Then
            Range(ActiveCell(2, 1), "A65536").Find(colname, , xlValues, xlPart).Select
            If MsgBox("Is " & sNaam & " die je zoekt?", vbYesNo) = vbYes Then
            bGevonden2 = True
            naam = ActiveCell.Value
            Worksheets(naam).Activate
            Unload Me
            Exit Sub
            Else
            End If
        Else
        MsgBox (colname & " is niet gevonden")
        bGevonden2 = True
        Unload Me
        Exit Sub
        End If
    Loop
    End If
End If

Worksheets("index").Visible = xlVeryHidden

Unload Me

Worksheets("index").Visible = True
fout: Worksheets("index").Activate
        rZoekCel.Delete
        Unload Me
        MsgBox ("Het tabblad van " & sNaam & " is niet gevonden")
Worksheets("index").Visible = xlVeryHidden

End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan