CSV Dateien in unterschiedliche Excel Blätter importieren
#1
Hallo zusammen,

ich habe folgendes Problem. Durch eine SQL-Abfrage habe ich um die 25 CSV Dateien generiert.
Diese CSV Dateien möchte ein User gerne in einer Excel Datei haben. Dabei soll jede CSV Datei in einem unterschiedlichen Excel Blatt dargestellt sein.
Hat vielleicht einer eine Idee wie ich alle CSV-Dateien in unterschiede Arbeitsblätter importieren kann?

Ich kenne bereits die Funktion Daten > Aus Datei > Aus Ordner. 
Hier weiß ich jedoch nicht, wie ich es so einstellen kann, dass jede CSV Datei in ein anderes Arbeitsblatt importiert wird.
Bei mir importiert er alle CSV Dateien in das selbe Blatt.

Die Notlösung wäre, dass ich jeweils immer ein neues Blatt erstelle und die CSV Dateien einzeln importiere.
Gerne würde ich das jedoch vermeiden, da es in Zukunft auch sein kann, dass eine größere Anzahl an CSV Dateien importiert werden muss.
Antworten Top
#2
Code:
Sub M_snb()
  c00="G:\OF\"
  c01=dir(c00 & *.csv")

  Do until c01=""
    sheets.add ,sheets(sheets.count),,c00 & c01
    c01=dir
  loop
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Moin

Ein paar dumme Fragen von den billigen Plätzen.

a) Warum der Zwischenschritt mit den csv-Dateien?
b) Warum in separate Tabellenblätter?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#4
Hallo zusammen,

@Snb Danke für den Code ich probiere es aus und melde mich.

@Shiftdel Die Datenmenge ist zu groß für ein Arbeitsblatt. Das Programm für die SQL Abfrage unterstützt ebenfalls nur CSV.
Antworten Top
#5
Hi,

hast du mal getestet, ob PowerQuery die Daten die direkt aus der Datenbank ziehen kann? Immerhin bietet es SQL-Server als Datenquelle an. Habe es allerdings noch nie selbst ausprobiert.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hallo,

der User möchte am Ende eine Excel haben. Wie genau würde ich den die Daten auf die einzelnen Arbeitsblätter aufteilen?

(11.04.2023, 18:02)snb schrieb:
Code:
Sub M_snb()
  c00="G:\OF\"
  c01=dir(c00 & *.csv")

  Do until c01=""
    sheets.add ,sheets(sheets.count),,c00 & c01
    c01=dir
  loop
End Sub

Hallo Snb,

leider trennt er die Daten nicht nach Ihrem Trennzeichen ";". Könnte man den Code diesbezüglich anpassen? Oder muss ich das manuell in Excel trennen?
Antworten Top
#7
Hier auf den billigen Plätzen würde man die SQL-Abfrage mit M-Code nachbauen. Alternativ kann PQ auch eine SQL-Abfrage an den Datenbank-Server schicken.
Am Ende hat man EINE Liste mit mehr als 1 Million Zeilen.

Was hat der End-Anwender mit den Daten vor?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#8
Der User möchte die Daten gerne validieren. 
Leider habe ich mit Power Query noch nicht viel gearbeitet und wüsste auch nicht wie man Datenbanken damit abfragt.
Antworten Top
#9
(12.04.2023, 11:46)Neymucin schrieb: Der User möchte die Daten gerne validieren. 
Kein Problem.

Das kann er übrigens auch direkt in der Datenbank. Dann spart man sich den anderen Kram.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#10
Hi,

mal abgesehen von @shift_del 's berechtigten Einwänden:

Alle Daten nur in das Datenmodell lesen. Da gibt es auch keine zeilenmäßige Beschränkung. Ich hab da schon zig-Millionen Datensätze eingelesen.
Eine Parametertabelle erstellen, in der Du festlegen/auswählen kannst, welche von den 25 Optionen Du sehen willst und aufbauend auf beiden eine entsprechende Abfrage erstellen. Da genügt dann auch ein Blatt zur Darstellung der getroffenen Auswahl..

Die Validierung der Daten ergibt eh nur in der Quelle einen Sinn, denn dort muss der aktuelle Stand gespeichert werden. Es sei denn, Du bestehst auf veraltete Daten... :)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste