Microsoft Excel

Herbers Excel/VBA-Archiv

Methode oder Datenobjekt nicht gefunden

Betrifft: Methode oder Datenobjekt nicht gefunden von: Carlotta
Geschrieben am: 22.09.2020 13:53:43

Hallo,


ich möchte Eigenbelege für die Buchhaltung automatisiert erstellen.

Dazu habe ich eine Vorlage "Eigenbeleg.xlsm" erstellt. Diese soll aus der ersten Zeile (3) der Datentabelle "OPOS2020_Test.xlsm" befüllt werden, anschließend als PDF gespeichert werden. Dies soll solange passieren, bis die letzte Zeile (erste leere Zeile) erreicht ist.

Der Name der PDF soll sich zusammensetzen aus der Eigenbelegsnummer (Eigenbeleg.Range("C1")), dem Empfänger (Eigenbeleg.Range("C4") und dem Verwendungszweck (Eigenbeleg.Range("C5").


Ich habe das mir aus verschiedenen Beiträgen zusammengeklaubt. Allerdings bekomme ich nun die Meldung: Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden.

Dabei markiert er mir die dritte Zeile: Public Sub EigenbelegAnders() gelb


Ich habe bereits versucht Private Sub und nur Sub zu schreiben, das Problem bleibt unverändert. Auch bei Verweisen ist Microsoft Office Object Library, Ole Automation, Microsoft Excel Object Library markiert. Ich habe außerdem bereits versucht eine neue Tabelle zu erstellen und den Code darauf anzupassen. Allerdings leider alles erfolglos. Warum möchte es nicht mehr laufen? Könnt ihr mir bitte helfen?


Das ist mein Code:

Option Explicit

Public Sub EigenbelegAnders()

    'Variablen definieren
    
Dim Eigenbeleg As Worksheet
Dim Opos As Worksheet
Dim Zeilenzähler As Integer
Dim Filename As String


'Tabellen definieren

Set Opos = Workbooks("OPOS2020_Test.xlsm").Worksheets("Opos")
Set Eigenbeleg = Workbooks("Eigenbeleg.xl.xlsm").Worksheets("Tabelle1")

If Zeilenzähler <> 0 Then
Else
Zeilenzähler = 3
End If

'Kontrolle ob Zeile nicht leer ist
If Opos.Cells(Zeilenzähler, 1) <> "" Then

'Kopieren und einfügen
Opos.Range("A" & Zeilenzähler).Copy _
Eigenbeleg.Range("C1")

Opos.Range("C" & Zeilenzähler).Copy _
Eigenbeleg.Range("C2")

Opos.Range("E" & Zeilenzähler).Copy _
Eigenbeleg.Range("C4")

Opos.Range("G" & Zeilenzähler).Copy _
Eigenbeleg.Range("C5")

Opos.Range("H" & Zeilenzähler).Copy _
Eigenbeleg.Range("C3")

'ChDir "C:\Users\H E R B E R T\Downloads\EigenbelegePDF\"

Eigenbeleg.Sheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF _
, Filename:="C:\Users\H E R B E R T\Downloads\EigenbelegePDF\Eigenbeleg" 
& Sheets("Tabelle1").Range("C1").Text _
& Sheets("Tabelle1").Range("C4").Text _
& Sheets("Tabelle1").Range("C5").Text _
& ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True _
, IgnorePrintAreas:=False, OpenAfterPublish:=True

Zeilenzähler = Zeilenzähler + 1

End If

End Sub


Betrifft: AW: Methode oder Datenobjekt nicht gefunden
von: Carlotta
Geschrieben am: 22.09.2020 13:59:07

https://www.herber.de/bbs/user/140366.xlsm

https://www.herber.de/bbs/user/140367.xlsm


Das sind meine beiden Dateien

Betrifft: AW: Methode oder Datenobjekt nicht gefunden
von: Carlotta
Geschrieben am: 22.09.2020 14:02:19

Dabei ist https://www.herber.de/bbs/user/140366.xlsm die Eigenbeleg Datei

und https://www.herber.de/bbs/user/140367.xlsm die Opos Liste

Betrifft: AW: Methode oder Datenobjekt nicht gefunden
von: Nepumuk
Geschrieben am: 22.09.2020 14:48:20

Hallo,

den Fehler kann ich nicht nachvollziehen. Aber teste mal:

Option Explicit

Public Sub EigenbelegAnders()
    
    'Variablen definieren
    
    Dim Eigenbeleg As Worksheet
    Dim Opos As Worksheet
    Dim Zeilenzähler As Long
    
    'Tabellen definieren
    
    Set Opos = Workbooks("OPOS2020_Test.xlsm").Worksheets("Opos")
    Set Eigenbeleg = Workbooks("Eigenbeleg.xl.xlsm").Worksheets("Tabelle1")
    
    With Opos
        
        For Zeilenzähler = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
            
            'Kontrolle ob Zeile nicht leer ist
            If .Cells(Zeilenzähler, 1) <> "" Then
                
                'Kopieren und einfügen
                .Range("A" & Zeilenzähler).Copy _
                    Eigenbeleg.Range("C1")
                
                .Range("C" & Zeilenzähler).Copy _
                    Eigenbeleg.Range("C2")
                
                .Range("E" & Zeilenzähler).Copy _
                    Eigenbeleg.Range("C4")
                
                .Range("G" & Zeilenzähler).Copy _
                    Eigenbeleg.Range("C5")
                
                .Range("H" & Zeilenzähler).Copy _
                    Eigenbeleg.Range("C3")
                
                With Eigenbeleg
                    
                    .ExportAsFixedFormat Type:=xlTypePDF _
                        , Filename:="C:\Users\H E R B E R T\Downloads\EigenbelegePDF\Eigenbeleg" & _
                        .Range("C1").Text & .Range("C4").Text & .Range("C5").Text & ".pdf", _
                        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                        IgnorePrintAreas:=False, OpenAfterPublish:=True
                    
                End With
            End If
        Next
    End With
    
    Set Eigenbeleg = Nothing
    Set Opos = Nothing
    
End Sub

Gruß
Nepumuk

Betrifft: AW: Methode oder Datenobjekt nicht gefunden
von: Carlotta
Geschrieben am: 22.09.2020 16:18:19

Perfekt das funktioniert! Danke danke danke :)

Beiträge aus dem Excel-Forum zum Thema "Methode oder Datenobjekt nicht gefunden"