Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Dateien in neues Dokument übertragen

VBA Dateien in neues Dokument übertragen
07.04.2020 08:49:12
Schlandro
Guten Morgen,
ich bräuchte Hilfe bei meiner VBA Problematik.
Ich möchte in einer Excel Tabelle Daten nach einem spezifischen Begriff filtern, anschließend sollen die gefilterten Daten in eine seperate Datei abgespeichert werden. Einmal als .xlsx und einmal als pdf. Dabei soll es künftig mehrere Dateien geben die nach dem gleichen Namen gefiltert wurde, sich aber im Datum unterscheiden.
Danach soll die Prozedur für einen anderen spezifischen Begriff ablaufen. Heißt es soll mehrere Dateien mit verschiedenen Namen geben.
Ich kann momentan die einzelnen Daten nach dem Namen filtern, dass Abspeichern in eine externe datei funktioniert aber nicht. Vor allem mit fortlaufendem Datum hab ich keine Ahnung wie ich das realisieren soll.
Wäre schön wenn Ihr mir weiterhelfen könntet. Bin in VBA Anfänger und bin auf Hilfe angewiesen.
Besten Dank und Liebe Grüße

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 09:12:10
Hajo_Zi
Benutze Autofilter und Kopiere den sichtbarenb bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Excel hat auch einen Makrorecorder.

AW: VBA Dateien in neues Dokument übertragen
07.04.2020 09:23:46
Schlandro
Hallo Hajo,
wie beschrieben ist das Filtern nicht das Problem sondern das automatisierte Abspeichern und dass der Prozess: - Filtern - abspeichern .pdf - abspeichern als .xlsx - Filtern ...nacheinander korrekt abläuft.
Ich habe dazu keinen richtigen Ansatz wie ich das umsetze.
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 09:41:59
Nepumuk
Hallo Schlandro,
zeig was du bisher hast. Woher kommen die "spezifischen Begriffe"? Wie soll der Dateiname lauten? Wo (Ordner) soll gespeichert werden?
Gruß
Nepumuk
Anzeige
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 10:14:11
Schlandro
Ich habe mal eine Testdatei erstellt und in den Code Notizen eingefügt, wie gefiltert wird. Ich hoffe es ist verständlich.
Sub Filtern()
ActiveSheet.Range("$C$1:$H$29").AutoFilter Field:=1, Criteria1:="AL"
Cells.Select
Range("A1:ZZ1000").Activate
Selection.Copy
'Alle gefilterten Daten kopieren und als .pdf abspeichern C:\Users\simon\Desktop\Excel-Test
'Alle gefilterten Daten kopieren und als .xlsm abspeichern C:\Users\simon\Desktop\Excel- _
Test
ActiveSheet.Range("$C$1:$H$29").AutoFilter Field:=1, Criteria1:="PL"
Cells.Select
Range("A1:ZZ1000").Activate
Selection.Copy
'Alle gefilterten Daten kopieren und als .pdf abspeichern C:\Users\simon\Desktop\Excel-Test
'Alle gefilterten Daten kopieren und als .xlsm abspeichern C:\Users\simon\Desktop\Excel- _
Test
ActiveSheet.Range("$C$1:$H$29").AutoFilter Field:=1, Criteria1:="PP"
Cells.Select
Range("A1:ZZ1000").Activate
Selection.Copy
'Alle gefilterten Daten kopieren und als .pdf abspeichern C:\Users\simon\Desktop\Excel-Test
'Alle gefilterten Daten kopieren und als .xlsm abspeichern C:\Users\simon\Desktop\Excel- _
Test
ActiveSheet.Range("$C$1:$H$29").AutoFilter Field:=1, Criteria1:="PuL"
Cells.Select
Range("A1:ZZ1000").Activate
Selection.Copy
'Alle gefilterten Daten kopieren und als .pdf abspeichern C:\Users\simon\Desktop\Excel-Test
'Alle gefilterten Daten kopieren und als .xlsm abspeichern C:\Users\simon\Desktop\Excel- _
Test
ActiveSheet.Range("$C$1:$H$29").AutoFilter Field:=1, Criteria1:="QS"
Cells.Select
Range("A1:ZZ1000").Activate
Selection.Copy
'Alle gefilterten Daten kopieren und als .pdf abspeichern C:\Users\simon\Desktop\Excel-Test
'Alle gefilterten Daten kopieren und als .xlsm abspeichern C:\Users\simon\Desktop\Excel- _
Test
End Sub

Anzeige
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 10:34:05
Nepumuk
Hallo Schlandro,
das hilft schon mal ungemein. Jetzt fehlen nur noch die Dateinamen unter denen die einzelnen Dateien abgespeichert werden sollen.
Gruß
Nepumuk
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 11:16:49
Schlandro
Die Dateinamen sind:
AL = Auftragslogistik jeweils .pdf und .xlsm
PL = Produktionslogistik jeweils .pdf und .xlsm
PP = produktionsplanung jeweils .pdf und .xlsm
PuL = Auftragslogistik jeweils .pdf und .xlsm
QS = Auftragslogistik jeweils .pdf und .xlsm
Vielen Dank!
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 11:38:40
Nepumuk
Hallo Schlandro,
teste mal:
Option Explicit

Public Sub Filtern()
    
    Const FOLDER_PATH As String = "C:\Users\simon\Desktop\Excel-Test\"
    
    Dim objWorkbook As Workbook
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="AL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "AL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "AL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PP")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PP", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PP", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PuL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PuL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PuL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="QS")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "QS", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "QS", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 11:38:58
Nepumuk
Hallo Schlandro,
teste mal:
Option Explicit

Public Sub Filtern()
    
    Const FOLDER_PATH As String = "C:\Users\simon\Desktop\Excel-Test\"
    
    Dim objWorkbook As Workbook
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="AL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "AL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "AL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PP")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PP", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PP", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="PuL")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "PuL", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "PuL", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
    
    Call Rows(1).AutoFilter(Field:=1, Criteria1:="QS")
    Call ActiveSheet.AutoFilter.Range.Copy
    
    Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
    
    With objWorkbook.Worksheets(1)
        Call .Paste(Destination:=.Cells(1, 1))
    End With
    
    Call objWorkbook.SaveAs(Filename:=FOLDER_PATH & "QS", FileFormat:=xlOpenXMLWorkbook)
    Call objWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & "QS", _
        Quality:=xlQualityStandard, OpenAfterPublish:=False)
    Call objWorkbook.Close(SaveChanges:=False)
    
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Dateien in neues Dokument übertragen
07.04.2020 16:19:38
Schlandro
@Nepumuk
Tausend Dank, in meiner Testdatei funktioniert der Code super, hat mir sehr weiter geholfen.
In der Originaldatei jedoch gibt es Probleme mit verbundenen Zellen, ich bin noch nicht dahinter gekommen wie ich das löse ohne die ganze Datei überarbeiten zu müssen.

147 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige