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

monatlich wechselnder Dateinamen/Ordner

monatlich wechselnder Dateinamen/Ordner
11.11.2020 10:34:58
Peter
Hallo zusammen,
ich möchte gerne via Makro Daten aus monatlich wechselnden Ordnern und Dateinamen öffnen und in eine Monatsdatei kopieren.
Monat 01
Ordner: \Verzeichnis\2020\01
Dateiname: Rohdaten_2020_01
Monat 02
Ordner: \Verzeichnis\2020\02
Dateiname: Rohdaten_2020_02
Idealerweise würde ich den Import natürlich automatisieren, den aktuellen Monat über eine Texteingabe in der Zusammenfassungsdatei händisch vorgeben. Alternativ könnte man dies vielleicht über ein Makro realisieren, welches via Eingabefeld einem zur Auswahl der jeweiligen Rohdatendatei zwingt.
Habt Ihr Ideen wie man meine Anforderung lösen könnte?
Grüße Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: monatlich wechselnder Dateinamen/Ordner
11.11.2020 11:07:40
Nepumuk
Hallo Peter,
was soll wohin kopiert werden? Deine Angaben sind zu mager um darauf etwas aufzubauen. Am besten lädst du eine Mustermappe hoch in der sich sowohl die Quelltabelle als auch die Zieltabelle befinden. Die Originaldaten müssen nicht drin sein.
Gruß
Nepumuk
AW: monatlich wechselnder Dateinamen/Ordner
11.11.2020 11:53:48
Peter
Hallo Nepumuk,
danke für den Hinweis. Ich hoffe so wird es deutlicher. Anbei einmal das Makro, welches ich mir so über die Videoaufzeichnung annähernd erzeugt habe:
Sub DLB_Daten_einladen()
' DLB_Daten_einladen Makro
Sheets("Mappe1").Select
Workbooks.Open Filename:= _
"M:\Zentrale Datenablage\2020\2020-01\Rohdatendatei_2020_01.xlsx" _
, UpdateLinks:=0
Range("A900:AE900").Select
Range(Selection, Selection.End(xlDown)).Select
Range("A900:AE25443").Select
Selection.Copy
Windows("Beispieldatei.xlsm"). _
Activate
Sheets("Mappe1").Select
Range("A25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Rohdatendatei_2020_01.xlsx").Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
Application.CutCopyMode = False
End Sub
Link zur Beispieldatei:
https://www.herber.de/bbs/user/141461.xlsm
Ich habe also eine Auswertungsdatei "Beispieldatei". In diese Datei sollen monatlich Daten aus einer anderen Datei eingeladen werden. Die monatlichen Daten liegen auf einem Gruppenlaufwerk (Netzwerk) und werden jeden Monat in einen fortlaufenden Ordner gelegt. Im Beispiel "2020-01". Im nächsten Monat liegt die Datei im Ordner "2020-02" und wird auch mit einer entsprechenden Dateibezeichnung fortlaufend benannt.
Einen fixen Bezug auf die Datei bekomme ich hin, leider hapert es mit einer dynamischen Verknüpfung.
Anzeige
AW: monatlich wechselnder Dateinamen/Ordner
11.11.2020 12:22:31
Nepumuk
Hallo Peter,
teste mal:
Option Explicit

Public Sub DLB_Daten_einladen()
    
    Const FOLDER_PATH As String = "M:\Zentrale Datenablage\"
    
    Dim strYear As String, strMonth As String, strPath As String
    Dim objWorkbook As Workbook
    
    If Cells(6, 2).Text Like "####-##" Then
        
        strYear = Split(Cells(6, 2).Text, "-")(0)
        strMonth = Split(Cells(6, 2).Text, "-")(1)
        
        strPath = FOLDER_PATH & strYear & "\" & Cells(6, 2).Text & "\Rohdatendatei_" & Cells(6, 2).Text & ".xlsx"
        
        If Dir$(PathName:=strPath) <> vbNullString Then
            
            Call Range(Cells(25, 1), Cells(Rows.Count, Columns.Count)).ClearContents
            
            Set objWorkbook = GetObject(PathName:=strPath)
            
            With objWorkbook.Worksheets(1)
                Call .Range(.Cells(900, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 31)).Copy
            End With
            
            Call Cells(25, 1).PasteSpecial(Paste:=xlPasteValuesAndNumberFormats)
            
            Application.CutCopyMode = False
            
            Call objWorkbook.Close(SaveChanges:=False)
            
        Else
            Call MsgBox("Datei nicht gefunden.", vbExclamation, "Hinweis")
        End If
    Else
        Call MsgBox("Bitte den Zeitraum im Format JJJJ-MM eintragen.", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige