Anzeige
Archiv - Navigation
1580to1584
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

Daten aus verschiedenen Tabellen importieren

Daten aus verschiedenen Tabellen importieren
18.09.2017 11:15:03
DerHorst
Hallo zusammen,
ich möchte gerne ein paar VBA Grundlagen lernen und habe mir eine für einen Anfänger zu große Aufgabe gesucht.
Es geht darum rund 20 Gebäude bzw zugehörige Sensoren zu analysieren, dabei werden die Daten jeden Tag in 10 min-Schritten von allen Gebäuden in einer einzigen Tabelle zusammengefasst (Vereinfacht in Tabellenblatt 1 + 2 dargestellt).
https://www.herber.de/bbs/user/116319.xlsx
Für die Analyse der einzelnen Gebäude bräuchte ich ein Makro, das alle Dateien in einem Ordner durchsucht und vorher definierte Zellbereiche importiert.
Ich hoffe die Beschreibung ist einigermaßen verständlich. Um es besser darzustellen befindet sich im 3. Tabellenblatt eine Mustertabelle für Gebäude Nr. 2!
Gemacht wurde:
- Ordner mit allen Datensätzen durchsucht
- Spalten A, E und F von allen Tabellen importiert, ausgenommen Zeilen 1,2 und 3
- Die letzte Zeile (Uhrzeit 00:00:00) sollte gelöscht werden, da unbehandelt immer = 1. Zeile des Folgetages
- Da die ersten 3 Zeilen als Template bereits vor dem Makro in der Tabelle stehen werden, sollen die Werte ab der 4. Zeilen und nach Datum/Zeit geordnet eingefügt werden.
Ich hoffe Ihr könnt mir bei dieser Aufgabe weiterhelfen! :)
Viele Grüße
Horst

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus verschiedenen Tabellen importieren
18.09.2017 17:36:26
Michael
Hallo!
Dein Beschreibung & Beispiel-Datei ist verwirrend. Was suchst Du?
Soll das, was in den Tabellen "12.07.16" bzw. "13.07.16" angeführt ist, aus den Excel-Dateien eines Ordners extrahiert werden, oder das was in Tabelle "G2 merged" angeführt ist?
Bis jetzt hätte ich es so verstanden:
Es gibt ein festes Verzeichnis, in dem befinden sich x Excel-Dateien, die beinhalten die Daten, wie bspw. in "13.07.16". Es sollen alle Dateien durchlaufen werden, und die jeweiligen Gebäude-Daten nach Gebäude spaltenweise gesammelt werden - soll dabei jedes Gebäude auf eine eigenes Blatt? Oder willst Du überhaupt im Makro, bspw. durch Abfrage beim Aufruf, festlegen, von welchem Gebäude die Daten importiert werden sollen?
LG
Michael
Anzeige
AW: Daten aus verschiedenen Tabellen importieren
20.09.2017 10:27:52
DerHorst
Hallo Michael,
Vielen Dank schon einmal für deine Nachricht! :)
Ich habe mir schon gedacht dass es schwierig wird mein Anliegen genauer zu beschreiben.
Also der nächste Versuch:
Deine Vermutung stimmt im Großen und Ganzen bereits! Es gibt einen festen Ordner, in dem
jeden Tag eine neue Datei mit einem Arbeitsblatt hinzugefügt wird.
In dieser Datei sind die Daten für alle Gebäude im Tagesverlauf dargestellt (=12.07.16).
Das Tool soll den Ordner nach allen .csv Dateien durchsuchen und genau für 1!
Gebäude alle vorher definierten Zellbereiche untereinander kopieren (=G2 merged ist das was am Ende heraus kommen soll).
In dem Beispiel von oben wäre das für Gebäude 2 jedes mal der Bereich: Spalten A, E und F ab Zeile 4.
Wenn möglich dann noch die letzte Zeile löschen.
Nach diesem Schema möchte ich für jedes Gebäude anschließend eine Datei erstellen und den definierten Zellbereich entsprechend übertragen.
Ich hoffe es ist etwas verständlicher geworden!
Viele Grüße
Horst
Anzeige
AW: Daten aus verschiedenen Tabellen importieren
20.09.2017 12:02:15
DerHorst
Ein erster Erfolg! :)
ich habe bei meiner Recherche ein Tool gefunden, das zumindest ansatzweise passt.

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
Dim xSht  As Worksheet
Dim xWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Set xSht = ThisWorkbook.ActiveSheet
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.csv")
Do While xFile  ""
Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
Columns(1).Insert xlShiftToRight
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.Close False
xFile = Dir
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files csv", , "Kutools for Excel"
End Sub
Offensichtlich stimmt das Format nicht, außerdem übernimmt das Tool die gesamte Datei und nicht nur einen Zellbereich. Könnte dieser Code behilflich sein?
Viele Grüße
Anzeige
Hier für Dich zum Testen...
20.09.2017 14:05:59
Michael
Hallo Horst!
Ist nett, dass Du selbst Code recherchiert hast, aber wenn ich eine Anfrage bearbeite, schreibe ich dann doch selbst Code ;-).
Hier eine Mappe für Dich: https://www.herber.de/bbs/user/116394.xlsm
Mit dieser Mappe kannst Du, wie gewünscht, die Gebäude-Daten des angegebenen Gebäudes importieren. Dazu musst Du im Blatt (es gibt aktuell nur eines, nämlich "Tabelle1") in der gelb markierten Zelle nur den jeweiligen Gebäudecode eingeben (also zB G2). Mit Klick auf die Schaltfläche wird dann das Makro (im Modul1) gestartet, und der Import begonnen.
Im Makro selbst musst Du noch ein paar Anpassungen vornehmen (einmalig), ich habe Dir gekennzeichnet wo:
- Falls das Blatt in das importiert wird (aktuell "Tabelle1") anders benannt wird, musst Du das im Code für das Zielblatt ändern
- Deinen Pfad, wo die CSV-Dateien liegen, musst Du entsprechend eintragen
Nach dem Import kannst Du dann die Datei manuell abspeichern.
Gib Bescheid, ob Du hinkommst.
LG
Michael
Anzeige
Keine Antwort mehr, Horst? Schade! owt
21.09.2017 12:37:13
Michael

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige