Die Lage bringt mich zum verzweifeln. Hab mich mit Tutorials etwas in die Materie eingearbeitet und das Meiste funktioniert. Nur das Neuste nicht:
Ich habe eine grosse Datentabelle. Daraus muss ich nun täglich eine Zusammenstellung per Mail versenden, die von drei Faktoren abhängig ist.
Die Datei hat drei Blätter, ich nenne Sie mal: AAA (Filteroptionen in Zelle C17-Text, C18-Datum und D19-Wert), BBB (Datenquelle A:BF) und XXX (Auffangtabelle für den Export).
Die Werte in BBB sind fast ausschliesslich mit Bezügen und SVERWEIS aus einer weiteren Mappe importiert.
Aus einem Youtube-Video (0069. Excel-VBA: Daten filtern, exportieren und versenden) habe ich _ mir folgenden Code genommen und angepasst (hier mit einigen Platzhaltern dargestellt):
Sub EXCELfiltern1()
tbl_XXX.UsedRange.Clear
With tbl_BBB.ListObject
.Range("A1:BF12030").AutoFilter Field:=3, _
Criterial:=Worksheets("AAA").Range("C17")
.Range("A1:BF12030").AutoFilter Field:=46, _
Criterial:=Worksheets("AAA").Range("C18")
.Range("A1:BF12030").AutoFilter Field:=32, _
Criterial:=Worksheets("AAA").Range("D19")
.UsedRange.Copy Destination:=tbl_XXX.Range("a1")
.AutoFilterMode = False
Call ExportXLSX
End With
End Sub
Sub ExportXLSX()
Application.DisplayAlerts = False
'Kopiert die Tabelle in eine neue, leere Mappe
tbl_XXX.Copy
ActiveWorkbook.SaveAs Filename:="MUSTER_Export.xlsx" '
ActiveWorkbook.Close 'savechanges:=true
Application.DisplayAlerts = True
Call XLSXVersand
End Sub
Sub XLSXVersand()
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Set OutlookApp = CreateObject("Outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
.To = "MUSTER"
.Subject = "MUSTER"
.Body = "Im Anhang finden Sie die neusten Meldungen."
myAttachments.Add "MUSTER_Export.xlsx" ' Der Versand funktioniert bisher, sofern die Datei _
erzeugt werden kann
'.send
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub
Mein Hauptproblem: bereits bei tbl_XXX.UsedRange.Clear oder weiter unten tbl_XXX.Copy erhalte ich immer den Laufzeitfehler '424' Objekt Erforderlich.
Was kann ich tun?
Danke im Voraus für die Tipps