Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiname zum Speichern aus Zelle anderer Tabelle

Dateiname zum Speichern aus Zelle anderer Tabelle
13.02.2019 10:16:20
Ralf
Hallo liebes Forum,
ich habe folgendes Problem:
Tabelle A ist meine Arbeitstabelle mit den Makros.
Ich habe in Tabelle A, Blatt A Zellen, die ich zuerst filtern und dann die gefilterte und aufbereitete Auswahl kopieren möchte. Funktioniert auch.
Die Kopie wird in eine neue Tabelle B eingefügt und soll jetzt aber mit einem Zellinhalt aus Tabelle A als Dateiname gespeichert werden... aber aktiv ist ja Tabelle B, die ja auch gespeichert werden soll. Ich komme leider nicht weiter - könnte mir jemand weiterhelfen?
Nicht wundern, das Makro wurde teils durch click und play erstellt oder zusammenkopiert.
vorab: Inhalt H6 z.B. 03/2019
-----
' Filtern der Ergebnisse
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("sb_BERICHTE").Select
Cells.Select
Selection.AutoFilter
ActiveSheet.Range("A:I").AutoFilter Field:=6, Criteria1:="0001-01"
ActiveSheet.Range("A:I").AutoFilter Field:=8, Criteria1:=""
ActiveSheet.Range("A:I").AutoFilter Field:=4, Criteria1:=""
ActiveSheet.Range("A:I").AutoFilter Field:=9, Criteria1:="="
ActiveWorkbook.Worksheets("sb_BERICHTE").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("sb_BERICHTE").AutoFilter.Sort.SortFields.Add Key:= _
Range("C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("sb_BERICHTE").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Sichtbare Ergebnisse kopieren und in neue Mappe einfügen
Range("A:H").SpecialCells(xlCellTypeVisible).Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Range("F:G,I:I").Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.Range("A:F").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6 _
), Header:=xlYes
ChDir "M:\Dokumente\xxx\Daten aufbereitet"
ActiveWorkbook.SaveAs Filename:= _
"M:\Dokumente\xxx\Daten aufbereitet\yyy.xlsx ", FileFormat _
:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close SaveChanges:=True
Cells.Select
Selection.AutoFilter
Sheets("Arbeitsblatt").Select
-----
Ein Einfügen von
-----
ActiveWorkbook.SaveAs Filename:= _
"M:\Dokumente\xxx\Daten aufbereitet\yyy" & Sheets("Arbeitsblatt").Range("H6").Value & ".xlsx ", FileFormat _
:=xlOpenXMLWorkbook, CreateBackup:=False
-----
endet leider mit einem Laufzeitfehler...
Tabelle A hat einen Blattschutz aktiv über H6.
Bin dankbar für jede Hilfe :)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname zum Speichern aus Zelle anderer Tabelle
13.02.2019 10:57:35
Bernd
Servus Ralf,
mal dienen Code etwas aufbereitet aber ungetestet...

Sub test()
Dim wb As Workbook
Dim ws As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wb = ThisWorkbook
Set ws = wb.Sheets("sb_BERICHTE")
With ws.Cells
.AutoFilter
.AutoFilter field:=6, Criteria1:="0001-01"
.AutoFilter field:=8, Criteria1:=""
.AutoFilter field:=4, Criteria1:=""
.AutoFilter field:=9, Criteria1:="="
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("C:C"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
With ws
.Range("A:H").SpecialCells(xlCellTypeVisible).Copy
Set wb2 = Workbooks.Add
Set ws2 = wb2.Sheets(1)
With ws2
.Paste
Application.CutCopyMode = False
.Range("F:G,I:I").Delete shift:=xlToLeft
.Range("A:F").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), Header:=xlYes
End With
wb2.SaveAs Filename:="M:\Dokumente\xxx\Daten aufbereitet\" & wb.Sheets("Arbeitsblatt"). _
Range("H6").Value & ".xlsx ", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
wb2.Close False
.AutoFilter
End With
wb.Sheets("Arbeitsblatt").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set wb = Nothing
Set wb2 = Nothing
Set ws = Nothing
Set ws2 = Nothing
End Sub

Für weitere Hilfe lade bitte deine Datei hoch...
Grüße, Bernd
Anzeige
AW: Dateiname zum Speichern aus Zelle anderer Tabelle
13.02.2019 11:49:40
Ralf
Danke für die Hilfe,
leider kommt ein Laufzeitfehler 424: Objekt erforderlich bei:
With ws.Cells
.AutoFilter
.AutoFilter field:=6, Criteria1:="0001-01"
.AutoFilter field:=8, Criteria1:=""
.AutoFilter field:=4, Criteria1:=""
.AutoFilter field:=9, Criteria1:="="
.AutoFilter.Sort.SortFields.Clear.AutoFilter.Sort.SortFields.Clear
Hier mal meine Ausgangsdatei:
https://www.herber.de/bbs/user/127617.xlsm
AW: Dateiname zum Speichern aus Zelle anderer Tabelle
13.02.2019 14:05:35
Karl-Heinz
Hallo Ralf,
da ist Dir wohl ein Übernahmefehler reingeraten:
.AutoFilter.Sort.SortFields.Clear.AutoFilter.Sort.SortFields.Clear
ist doppelt und kann so nicht funktionieren. Nur das fette berücksichtigen.
viele Grüße
Karl-Heinz
Anzeige
AW: Dateiname zum Speichern aus Zelle anderer Tabelle
14.02.2019 09:31:23
Ralf
Danke für den Hinweis, aber im Makro ist alles korrekt...
Ich habe mir nun beholfen, indem ich per VBA eine Funktion aus der Ursprungstabelle in die aktive Tabelle mitkopiere, die mir den Dateinamen hergibt.
Trotzdem vielen Dank für die Hilfe!

102 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige