let
// Ordner einlesen
Quelle = Folder.Files("C:\DeinVerzeichnis"),
CSVs = Table.SelectRows(Quelle, each Text.Lower([Extension]) = ".csv"),
MitListe = Table.AddColumn(CSVs, "Liste", each let
Source = Csv.Document(File.Contents([Folder Path] & [Name]), [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.None]),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
ColNames = Table.ColumnNames(Promoted),
HasColB = List.Count(ColNames) >= 2,
ColB = if HasColB then Table.Column(Promoted, ColNames{1}) else List.Repeat({null}, 53),
ColB_fixed = if List.Count(ColB) < 53 then ColB & List.Repeat({null}, 53 - List.Count(ColB)) else ColB,
Werte = List.FirstN(List.Skip(ColB_fixed, 1), 52) in Werte),
AlsTabelle = Table.TransformColumns(MitListe,{"Liste", each let SpaltenNamen = List.Transform({2..53}, each "B" & Text.From(_)) in Table.FromRows({ _ }, SpaltenNamen)}),
Expandiert = Table.ExpandTableColumn(AlsTabelle,"Liste", List.Transform({2..53}, each "B" & Text.From(_)),List.Transform({2..53}, each "B" & Text.From(_))),
MitDatei = Table.RenameColumns(Expandiert,{{"Name", "Datei"}}),
Ergebnis =Table.SelectColumns(MitDatei,{"Datei"} & List.Transform({2..53}, each "B" & Text.From(_)))
in
Ergebnis
Werte = List.FirstN(ColB_fixed, 52) in Werte),
let
// Ordner einlesen
Quelle = Folder.Files("C:\DeinVerzeichnis"),
CSVs = Table.SelectRows(Quelle, each Text.Lower([Extension]) = ".csv"),
MitListe = Table.AddColumn(CSVs, "Liste", each let
Source = Csv.Document(File.Contents([Folder Path] & [Name]), [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.None]),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
ColNames = Table.ColumnNames(Promoted),
HasColB = List.Count(ColNames) >= 2,
ColB = if HasColB then Table.Column(Promoted, ColNames{1}) else List.Repeat({null}, 53),
ColB_fixed = if List.Count(ColB) < 53 then ColB & List.Repeat({null}, 53 - List.Count(ColB)) else ColB,
Werte = List.FirstN(ColB_fixed, 52) in Werte),
AlsTabelle = Table.TransformColumns(MitListe,{"Liste", each let SpaltenNamen = List.Transform({2..53}, each "B" & Text.From(_)) in Table.FromRows({ _ }, SpaltenNamen)}),
Expandiert = Table.ExpandTableColumn(AlsTabelle,"Liste", List.Transform({2..53}, each "B" & Text.From(_)),List.Transform({2..53}, each "B" & Text.From(_))),
MitDatei = Table.RenameColumns(Expandiert,{{"Name", "Name derDatei"}}),
Ergebnis =Table.SelectColumns(MitDatei,{"Name derDatei"} & List.Transform({2..53}, each "B" & Text.From(_)))
in
Ergebnis
let
// Ordner einlesen
Quelle = Folder.Files("C:\DeinVerzeichnis"),
CSVs = Table.SelectRows(Quelle, each Text.Lower([Extension]) = ".csv"),
MitListe = Table.AddColumn(CSVs, "Liste", each let
Source = Csv.Document(File.Contents([Folder Path] & [Name]), [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.None]),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
ColNames = Table.ColumnNames(Promoted),
HasColB = List.Count(ColNames) >= 2,
ColB = if HasColB then Table.Column(Promoted, ColNames{1}) else List.Repeat({null}, 53),
ColB_fixed = if List.Count(ColB) < 53 then ColB & List.Repeat({null}, 53 - List.Count(ColB)) else ColB,
Werte = List.FirstN(ColB_fixed, 52) in Werte),
AlsTabelle = Table.TransformColumns(MitListe,{"Liste", each let SpaltenNamen = List.Transform({2..53}, each "B" & Text.From(_)) in Table.FromRows({ _ }, SpaltenNamen)}),
Expandiert = Table.ExpandTableColumn(AlsTabelle,"Liste", List.Transform({2..53}, each "B" & Text.From(_)),List.Transform({2..53}, each "B" & Text.From(_))),
MitDatei = let Umbenannt = Table.RenameColumns(Expandiert, {{"Name", "Datei"}}),
OhneExt = Table.AddColumn(Umbenannt,"Datei Name",each Text.BeforeDelimiter([Datei], "."),type text)in OhneExt,
Ergebnis = Table.SelectColumns(MitDatei, {"Datei Name"} & List.Transform({2..53}, each "B" & Text.From(_)))
in
Ergebnis
Sub test()
Dim datei As String
Dim pfad As String
Dim wb As Workbook
pfad = ThisWorkbook.Path
datei = Dir(pfad & "\*.csv")
Do Until datei = ""
Set wb = Workbooks.Open(pfad & "\" & datei, ReadOnly:=True, local:=True)
With ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = Replace(datei, ".csv", "")
wb.Sheets(1).Cells(1, 1).CurrentRegion.Columns(2).Offset(1, 0).Copy
.Offset(1, 1).PasteSpecial xlPasteValues, Transpose:=True
End With
Application.CutCopyMode = False
wb.Close False
datei = Dir
Loop
End Sub
Application.ScreenUpdating = False
set wb = GetObject(Pfad & "\" & Datei)
Rang = List.Transform(
Werte,
each Text.AfterDelimiter(_, ";")
)
Rang =
List.Transform(
List.FirstN(List.Skip(Lines.FromBinary([Content], null, null, 65001),1),52),
each Text.Range(_, Text.PositionOf(_, ";")+1)
)
Zeilen = Lines.FromBinary([Content], null, null, 65001),
Werte = List.FirstN(List.Skip(Zeilen,1),52),
Option Explicit
Public Sub Main()
[A4:A6].Formula2 = "=HSTACK(Tabelle2!A2,TRANSPOSE(CHOOSECOLS(IMPORTTEXT(""C:\Temp\CSVDateien\""&Tabelle2!A2&"".csv"","";"",1,52),2)))"
[A4].SpillingToRange.Value = [A4].SpillingToRange.Value
End Sub