Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listenauswertung - Laufzeitfehler 1004:

Listenauswertung - Laufzeitfehler 1004:
27.03.2015 14:45:43
Paul
Hallo zusammen,
ich versuche aus einer Auflistung / einem Protokoll in dem Arbeitsaufträge aus verschiedenen Gremien aufgeführt sind, per Makro einen "Report" zu erstellen, der wiederum an unterschiedliche Empfängerkreise verschickt werden soll.
D.h. es wird zum einen nach dem Gremium und zum anderen nach "erledigt/nicht erledigt" gefiltert und soll dann im selben Format in eine neue Excel Datei kopiert werden.
Die Filterung, Markierung und das Erzeugen einer neuen Datei bekomme ich mit folgendem Code gut hin. Allerdings bekomme ich bei PasteSpecial immer einen Laufzeitfehler 1004 ("Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden"). Offenbar wir mir der Zwischenspeicher immer geleert.

Sub Auftraege_kopieren()
Application.ScreenUpdating = False
Dim Gremium As String
Gremium = InputBox("Bitte das auszuwertende Gremium eingeben:", "AutoFilter")
Selection.AutoFilter Field:=1, Criteria1:=Gremium, Operator:=xlFilterValues
Selection.AutoFilter Field:=9, Criteria1:=Array("0", "1"), Operator:=xlFilterValues
ActiveSheet.Range("A1:J" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible) _
.Copy
Call Report_erstellen
MsgBox ("Der Bericht wurde erstellt")
Call Filter_aufheben
Application.ScreenUpdating = True
End Sub
Sub Report_erstellen()
Dim Report As Workbook
Set Report = Workbooks.Add
Application.SheetsInNewWorkbook = 1
Application.Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
ActiveSheet.PageSetup.PrintArea = Range("A1:J" & ActiveSheet.UsedRange.Rows.Count).SpecialCells( _
xlCellTypeVisible).Address
Report.SaveAs Environ("Userprofile") & "\Desktop" & InputBox("Bitte den Namen des Reports  _
eingeben:") & ".xlsx"
ActiveWindow.Close
End Sub
Sub Filter_aufheben()
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=9
End Sub
Kann mir irgendjemand weiterhelfen oder hat eine Idee, wie ich das vereinfachen kann?
Viele Grüße
Paul

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenauswertung - Laufzeitfehler 1004:
27.03.2015 15:33:06
Klexy
Du musst das, was du kopierst in eine Objektvariable übergeben, um diese aus dem Makro Auftraege_kopieren in das Makro Report_erstellen zu übergeben.
siehe hier: http://www.online-excel.de/excel/singsel_vba.php?f=28
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige