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

Datei in einer Datei

Datei in einer Datei
29.08.2022 11:56:42
Klaus
Guten morgen zusammen,
wir bekommen täglich per EMAIL 21 Excel dateien. Die speichere ich ab im Ordner : unter L:Markt/Bestände
Ordner Name 29.08.2022
morgen dann der 30.08.2022
kann ich per VBA alles sagen. Gebe das Datum ein jetzt z.b. 29.08.2022 dann nimmt alle Dateien und mach darauf eine Datei.
Der Aufbau ist immer der gleiche Daten von A bis M und die erste Zeile ist die Überschrift mit Filter und leider ist machmal leerzeilen dazwischen.
Wäre sowas möglich ?
Danke euch

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei in einer Datei
29.08.2022 12:10:54
Yal
Hallo Klaus,
wenn es nicht darum geht, die Dateien ins passenden Ordner abzulegen (da geht es mit VBA), sondern aus den 21 abgelegte Dateien die Daten zusammenzufassen, wäre es am besten mit Power Query zu bewältigen: siehe Kapitel 5 von
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
Die Videos dazu über dieses Playliste:
https://www.youtube.com/playlist?list=PLy5TtUB84yrN2VVRzp8Tif8bxQKJD_2bo
VG
Yal
Anzeige
AW: Datei in einer Datei
29.08.2022 13:44:25
Klaus
Hallo Yal,
Vba wäre mir da lieber.
Ich schau mir dennoch abend deinen link an
Danke dir
Beispieltabelle(n)...
29.08.2022 13:57:22
JoWE
...und Beispielergebnis?
Gruß
Jochen
AW: Datei in einer Datei
29.08.2022 14:02:04
Rudi
Hallo,
teste mal:

Sub DatenImport()
Dim sFile As String, sOrdner As String, sDatum As String
Dim iCounter As Integer
Dim wksImport As Workbook, wksNeu As Worksheet
Const sPFAD As String = "L:\Markt\Bestände\"
sDatum = Format(Range("A1"), "DD.MM.YYYY") 'Datum für Ordner in A1
sFile = Dir(sPFAD & sDatum & "\*.xlsx", vbNormal)
Application.ScreenUpdating = False
Do While sFile  ""
iCounter = iCounter + 1
Set wksImport = Workbooks.Open(sPFAD & sFile).Sheets(1)
If iCounter = 1 Then
Set wksNeu = Worksheets.Add
wksNeu.Name = sDatum
With wksImport
.Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 13).Copy _
wksNeu.Cells(1, 1)
End With
Else
With wksImport
.Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 13).Copy _
wksNeu.Cells(Rows.Count, 1).End(xlUp).Offset(1)
End With
End If
wksImport.Parent.Close False
sFile = Dir
Loop
End Sub
Gruß
Rudi
Anzeige
AW: Datei in einer Datei
29.08.2022 14:17:13
UweD
Hallo
hier noch eine VBA Lösung von mir

Option Explicit
Sub alle_Dateien_Verzeichnis() '
On Error GoTo Fehler
Dim Pfad As String, Ext As String, Datei As String, Datum As String
Dim WB As Workbook, TBx As Worksheet, Anz As Integer, NeuNam As String
Dim LR1 As Long, LR2 As Long, RNG As Range, Sp As Integer, Z1 As Integer
Dim Leer As Range
'****Anpassen
Ext = "*.xlsx"
Sp = 1 ' Spalte A
Z1 = 2 'Daten an Zeile 2
Pfad = "L:\Markt\Bestände\" '**** mit \
Application.ScreenUpdating = False 'Flackern ausschalten
Datum = InputBox("Verzeichnis", "Eingabe", Format(Date, "DD.MM.YYYY"))
If Not IsDate(Datum) Then
MsgBox ("Fehler Eingabe")
Exit Sub
Else
'prüfen, ob Verz. existiert
If Dir(Pfad & Datum, vbDirectory) = "" Then
MsgBox ("Verzeichnis :" & Datum & " existiert nicht")
Exit Sub
Else
Pfad = Pfad & Datum & "\"
End If
End If
Datei = Dir(Pfad & Ext)
Do While Len(Datei) > 0
Workbooks.Open Filename:=Pfad & Datei
Set TBx = ActiveWorkbook.Sheets(1)
If Anz = 0 Then
'nur bei erster Datei, Blatt kopieren
TBx.Copy
Set WB = ActiveWorkbook
NeuNam = "Gesamt " & Datum & ".xlsx"
Else
'alle Weiteren, die Zeilen anhängen
With WB.Sheets(1)
LR1 = .Cells(.Rows.Count, Sp).End(xlUp).Row + 1 'erste freie Zeile der Spalte
LR2 = TBx.Cells(TBx.Rows.Count, Sp).End(xlUp).Row
TBx.Rows(2).Resize(LR2 - Z1 + 1).Copy .Rows(LR1)
End With
End If
Anz = Anz + 1
Workbooks(Datei).Close False 'ohne speichern
Datei = Dir() ' nächste Datei
Loop
If Anz > 0 Then
'Leerzeilen löschen
With ActiveSheet.Range("$A2:$A" & LR1 + LR2 - Z1)
If WorksheetFunction.CountBlank(.Cells) > 0 Then
'Es sind Leerzellen in A vorhanden
Set Leer = .SpecialCells(xlCellTypeBlanks)
Leer.EntireRow.Delete xlUp
End If
End With
WB.SaveAs (Pfad & NeuNam)
WB.Close
End If
MsgBox Anz & ": Dateien wurden verarbeitet"
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Datei in einer Datei
29.08.2022 14:55:59
Klaus
Hallo uwe,
hat geklappt, danke an alle
LG Klaus
Prima. Danke für die Rückmeldung. owT
29.08.2022 15:04:49
UweD

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige