Code loopt vast indien een waarde niet wordt gevonden

  • Onderwerp starter Onderwerp starter Gum2
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Gum2

Gebruiker
Lid geworden
30 mrt 2007
Berichten
80
Hallo,

Ik gebruik onderstaande code in een acces DB om data aan de de hand van een ID uit een excel sheet te verwijderen.
Zoland de ID in de excel sheet voorkomt is er niets aan de hand en wordt de data netjes verwijderd. Indien het ID niet wordt gevonden dan loopt de code vast met de melding "Fout 91 tijdens uitvoering. Objectvariabele of blokvariabele with is niet ingesteld" .
Ik heb geprobeerd een error handler in te bouwen maar ook dit werkt niet.
Wie weet raad om de code dusdanig aan te passen dat ik een melding krijg als een ID niet gevonden kan worden in het excel bestand en de code wordt afgebroken?

Code:
Private Sub Form_Delete(Cancel As Integer)
On Error GoTo txt:
'Set reference to MS excel object library
'declare variables
Dim xlApp As Excel.application
Dim xlBook As Excel.Workbook
Dim rij As Variant

'excel application stuff
Set xlApp = New Excel.application
xlApp.Visible = True

Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\boekingen.xls")


rij = xlApp.Sheets("Kas").Range("A:A").Find(RID, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
xlApp.Sheets("Kas").Rows(rij & ":" & rij).Delete Shift:=xlUp

xlApp.Sheets("Kas").Range("I8").AutoFill Destination:=Range("I8:I324"), Type:=xlFillDefault
   
xlApp.Sheets("Kas").Rows("324:324").Insert Shift:=xlDown
xlApp.Sheets("Kas").Range("A323:BX323").AutoFill Destination:=Range("A323:BX324"), Type:=xlFillDefault


'save file
xlBook.Save

'done
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing

Exit Sub
txt:
MsgBox "Record niet verwijderd!"

End Sub
 
Inmiddels een oplossing gevonden

Code:
With xlApp.Sheets("Kas")

        Set rw = .Columns(1).Find(What:=RID, After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
        
        If rij Is Nothing Then
            GoTo done
        Else
            rw = rw.Row
        End If
        
        .Rows(rw & ":" & rw).Delete Shift:=xlUp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan