Oorzaak "fout 91 tijdens uitvoering"

Status
Niet open voor verdere reacties.

ingding

Gebruiker
Lid geworden
30 mrt 2018
Berichten
19
Goedemiddag,

Bij het uitvoeren van onderstaande macro krijg ik telkens een error:
"Fout 91 tijdens uitvoering
Objectvariabele of blokvariabele With is niet ingesteld"

Heb zelf geen idee hoe dit komt :confused:... Alle hulp is welkom dus.

Dank alvast.

Sub Invoerenindatabase()
' Controle lege cellen
For Each cell In Range("G3:G7")
cell.Interior.ColorIndex = xlNone
If IsEmpty(cell) Then
i = 1
cell.Interior.ColorIndex = 6
End If
Next
If i > 0 Then MsgBox "Vul de gele cellen in": Exit Sub


' PDF maken
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="I:\LOGISTIEK\KEURINGEN\CERTIFICATEN NIEUWE MODULE\ZUIG PERS CHEMIESLANGEN" & Range("G7").Value & "_" & Format(Date, "yyyymmdd") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

' Afdrukken
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

' Cellen invoeren in database
With Sheets("CERTIFICAAT")
Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)).Offset(, 10) = .Cells(3, 7)
End With

' Cellen invoeren in database
With Sheets("CERTIFICAAT")
Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)).Offset(, 12) = .Cells(28, 5)
End With

' Cellen invoeren in database
With Sheets("CERTIFICAAT")
Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)).Offset(, 3) = .Cells(10, 5)
End With

End Sub
 
Plaats code in codetags.
Heb je ook op Foutopspring geklikt?
Zonee, doe dat dan en laat weten welke regel dan geselecteerd is.
Of plaats je document.
 
Die foutmelding wordt hoogstwaarschijnlijk veroorzaakt doordat er bij .Find niets gevonden wordt.
 
Dank voor jullie feedback.

Ik denk dat SjonR inderdaad gelijk heeft. De fout zou zitten in volgende regel:

With Sheets("CERTIFICAAT")
Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)).Offset(, 10) = .Cells(3, 7)
End With

Wat ik wil bereiken is dat wanneer de waarde in de database niet gevonden wordt, de macro wordt afgebroken met een message box 'niet gevonden in database'.
 
zo wel?
Code:
With Sheets("CERTIFICAAT")
    If Not Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)) Is Nothing Then
        Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7)).Offset(, 10) = .Cells(3, 7)
    Else
        MsgBox "Niet gevonden in database!"
    End If
End With
 
Waarom vertragen met twee keer zoeken als het in een keer kan.

Code:
With Sheets("CERTIFICAAT")
dim c as range
  set c = Sheets("DATABASE ZUIG-PERS-CHEMIESLANG").Range("B:B").Find(.Cells(7, 7),,,xlwhole)
       if not c is nothing then
         c.Offset(, 10) = .Cells(3, 7)
      Else
        MsgBox "Niet gevonden in database!"
    End If
End With
 
Laatst bewerkt:
Maar waarom krijg je dan op die ene zoekregel geen foutmelding?
 
Als het gezochte niet gevonden wordt, wordt 'set c' Nothing.
Dan de afvraag:
if not c is nothing then
 
Dank Harry,

Maakt het ook meteen overzichtelijker.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan