Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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

Makro soll eigenständig Dateien erstelle

Makro soll eigenständig Dateien erstelle
12.10.2020 16:10:27
Silvio
Hallo Zusammen,
ich stehe vor einer großen Aufgabe, die ich bestimmt durch ein Makro etwas erleichtern kann.
Und zwar muss ich meine Arbeitsmappe aufteilen.. Hierfür steht in Spalte B immer ein eindeutiger Name zum erkennen. Dieser geht über viele Zeilen hinweg. Die Aufgabe liegt darin, alle Zeilen die in Spalte B den selben Namen haben in einer neuen Excel Datei abzuspeichern und das für alle Namen.
Wenn es dann noch möglich ist, diese neue Excel direkt mit dem Namen aus Spalte B zu benennen und einem kleinen Zusatz (2020-10-12), wäre das schon perfekt. Zum Schluss müsste ich noch den richtigen Ordner zum abspeichern angeben können.
Leider belaufen sich meine VBA bzw. Makro Kenntnisse gegen 0 :(
Ich bitte vielmals um eure Hilfe :)
Vielen Dank
Silvio

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro soll eigenständig Dateien erstelle
12.10.2020 16:56:20
Nepumuk
Hallo Silvio,
teste mal:
Option Explicit

Public Sub CreateWorkbooks()
    Dim objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim strFolder As String
    Dim vntItem As Variant
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    With objFileDialog
        .AllowMultiSelect = False
        .InitialFileName = "H:\" ' Anpasssen
        If .Show Then strFolder = .SelectedItems(1) & "\"
    End With
    Set objFileDialog = Nothing
    If strFolder <> vbNullString Then
        Application.ScreenUpdating = False
        For Each vntItem In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).Value2
            Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
            Call objWorkbook.SaveAs(Filename:=strFolder & vntItem & _
                " 2020-10-12.xlsx", FileFormat:=xlOpenXMLWorkbook)
            Call objWorkbook.Close
        Next
        Set objWorkbook = Nothing
        Application.ScreenUpdating = True
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 09:24:04
Silvio
Hallo Nepumuk,
leider hat das nicht so ganz geklappt.
Es wird nur eine neue Datei erstellt die den Namen vom ersten Account trägt aber kein Inhalt drinnen ist. Also es wird aus der Stammdatei nicht der Inhalt der einzelnen Zeilen in die neue Datei übertragen.
Wie löse ich es, dass die ganz Datei durchläuft.
Vielen dank schonmal
Silvio
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 10:29:24
Nepumuk
Hallo Silvio,
dann musst du das genau beschreiben wie die Mappe aufgeteilt werden soll. In deine ersten Anfrage finde ich nichts davon.
Gruß
Nepumuk
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 11:57:44
Silvio
Hi Nepomuk,
ich hab jetzt mal eine abgespeckte Datei erstellt.
- In der echten Datei lässt sich eindeutig durch die Spalte B Organisation sortieren
- Man sieht das die Organisation A von Zeile 1 bis 136 geht und diese Zeilen sollen jetzt kopiert werden und in einer neuen Datei mit dem Namen der Organisation und dem Zusatz (2020-10-12) gespeichert werden.
- Dies soll jetzt in dem Beispiel für alle Organisationen (von A-C) durchgelaufen werden und jede mit den Informationen in einer separaten Datei gespeichert werden.
Ich hoffe damit kannst du mehr anfangen?
Vielen vielen Dank für deine Hilfe
Silvio
Anzeige
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 12:03:43
Nepumuk
Hallo Silvio,
und wo ist die Datei? Du musst, nach dem Hochladen, den Link kopieren und in den Beitragstext einfügen.
Gruß
Nepumuk
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 12:34:41
Nepumuk
Hallo Silvio,
teste jetzt mal:
Option Explicit

Public Sub CreateWorkbooks()
    
    Dim objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim objWorksheet As Worksheet
    Dim objDicionary As Object
    Dim strFolder As String
    Dim vntItem As Variant, avntValues As Variant
    
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    
    With objFileDialog
        .AllowMultiSelect = False
        .InitialFileName = "H:\" ' Anpasssen
        If .Show Then strFolder = .SelectedItems(1)
    End With
    
    Set objFileDialog = Nothing
    
    If strFolder <> vbNullString Then
        
        Application.ScreenUpdating = False
        
        If Right$(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
        
        Set objWorksheet = ThisWorkbook.Worksheets("Tabelle1") ' Anpassen !!!
        
        With objWorksheet
            avntValues = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)).Value2
        End With
        
        Set objDicionary = CreateObject(Class:="Scripting.Dictionary")
        
        For Each vntItem In avntValues
            objDicionary.Item(Key:=vntItem) = vbNullString
        Next
        
        For Each vntItem In objDicionary.Keys
            
            Call objWorksheet.Rows(1).AutoFilter(Field:=2, Criteria1:=vntItem)
            
            Set objWorkbook = Workbooks.Add(Template:=xlWBATWorksheet)
            
            Call objWorksheet.AutoFilter.Range.Copy(Destination:=objWorkbook.Worksheets(1).Cells(1, 1))
            
            Call objWorkbook.SaveAs(Filename:=strFolder & vntItem & _
                " 2020-10-12.xlsx", FileFormat:=xlOpenXMLWorkbook)
            
            Call objWorkbook.Close
            
        Next
        
        Call objWorksheet.Rows(1).AutoFilter
        
        Set objWorkbook = Nothing
        Set objDicionary = Nothing
        Set objWorksheet = Nothing
        
        Application.ScreenUpdating = True
        
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 14:01:03
Silvio
Hallo Nepumuk,
erstmal vielen dank. Kannst du mir noch dabei helfen, was genau ich an den zwei Stellen anpassen muss?
Silvio
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 14:32:08
Nepumuk
Hallo Silvio,
beim 1. kannst du ein Verzeichnis oder ein Laufwerk vorgeben. Beim 2. musst du den Namen der Ursprungstabelle eintragen, das war in deiner Mustermappe "Tabelle1".
Gruß
Nepumuk
AW: Makro soll eigenständig Dateien erstelle
13.10.2020 14:57:56
Silvio
Hallo Nepumuk,
vielen vielen Dank!! Es hat alles genau so funktioniert wie es sollte :)
Schönen Tag noch
Mit ganz lieben Grüßen
Silvio
AW: Crossposting
13.10.2020 09:48:04
Silvio
Vielen Dank für die den Link, bringt nur leider nichts :/
AW: Crossposting
13.10.2020 15:20:20
SF
Doch, den Helfern. Die können nämlich gucken ob es schon irgendwo anders Antworten gibt!
Ansonsten könnte es zu unnötiger Doppelarbeit kommen.
Arbeitest du gerne umsonst?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige