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

Quelldateien per Befehl aus einem Ordner öffnen

Quelldateien per Befehl aus einem Ordner öffnen
22.08.2015 18:57:43
Daniel

Hallo liebes Excel-Forum,
Ich bin neu hier, daher kurz einmal ein paar Eckdaten. Ich heiße Daniel, bin 27 Jahre alt und arbeite im Bereich der Finanzdienstleister. Ich habe eine Deutsche Dogge und beschäftige mich, im Rahmen meines Berufes, aktuell immer mehr mit Excel.
Aktuell habe ich folgendes Problem, für das ich als Laie einfach keine Lösung finde, bzw. keine Lösung die ich verstehe.So sieht die Sachlage aus:
Ich habe eine Datei in der bestimmte Daten aus verschiedenen Quelldateien (die liegen alle in einem Unterordner) zusammengestellt bzw. gesammelt werden.
Ich möchte einfach nicht immer alle unterschiedlichen Quelldateien öffnen, nachdem ich sie abgelegt habe, sondern hätte es gerne, dass Excel diese Daten via Befehl zieht, ohne die Dateien für mich sichtlich zu öffnen (also am besten im Hintergrund)
Gibt es also einen Befehl mit dem Excel sich pauschal alle Daten aus allen Dateien in einem spezifischen Ordner zieht, OHNE das man alle Quelldateinamen in dem Befehl integriert?
Ich hoffe, es ist verständlich, wie ich das meine^^ Vielen Dank schonmal :)

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Quelldateien per Befehl aus einem Ordner öffnen
22.08.2015 19:12:34
Hajo_Zi
arbeite doch mit Verknüpfungen. Also Beide Dateien öffnen In Ziel = eingeben und Zelle in Quelle wählen.

AW: Quelldateien per Befehl aus einem Ordner öffnen
22.08.2015 19:35:26
Daniel
es geht ja nicht um einen bestimmten Wert in der Quelldatei, sondern es soll ja ausgezählt werden. Die folgende Formel findet sich in der Ausgabe/Sammel-Datei.
=ZÄHLENWENNS('C:\Reporting\ProcessReport\[Quelldatei1.xlsx]Tabelle1'!$D:$D;"Danny"; 'C:\Reporting\ProcessReport\[Quelldatei1.xlsx]Tabelle1'!$H:$H;"1")
Und es kommen halt immer mehr Quelldateien dazu, und das Makro soll halt wenn möglich nicht jedes Mal geändert werden...damit ggf immer alle Daten aus allen Quelldateien auf einmal aktualisiert werden.

Anzeige
Quelldateien per Befehl aus einem Ordner öffnen
22.08.2015 20:03:26
Hajo_Zi
ZÄHLENWENNS ist eine Funktion die nicht auf eine geschossene Datei zugreifen kann.
Gruß Hajo

AW: Quelldateien per Befehl aus einem Ordner öffnen
22.08.2015 20:36:26
Daniel
Gibt es nicht unabhängig davon ein mögliches Makro oder einen Befehl, der Excel-Dateien im Hintergrund einmal öffnet, damit die Daten trotzdem von der Zählenwenns-Formel gelesen werden können?

AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 09:54:51
Sepp
Hallo Daniel,
mit VBA lässt sich das schon realisieren, allerdings sollte man wissen, was aus den einzelnen Dateien ausgelesen werden soll und auch wie die Quelldateien aufgebaut sind (Beispieldatei!).
Gruß Sepp

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 10:32:14
Daniel
Hallo,
also die Quelldateien haben immer den gleichen Aufbau und im Prinzip müssen für die Zählenwenns-Formel in der Ausgabedatei lediglich die Spalten "F" und "K" der Quelldateien ausgelesen werden.
Ich möchte nur halt verhindern, dass ich dieses Makro jede Woche umschreiben muss, daher wäre es halt cool, wenn sich das über einen allgemeinen Befehl im Hintergrund machen ließe.

AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 10:55:43
Sepp
Hallo Daniel,
ein Beispiel nach deiner weiter oben geposteten Formel.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub aktualisieren()
Dim strPath As String, strFile As String, strRef1 As String, strRef2 As String
Dim vntCon1 As String, vntCon2 As String, strFormula As String, strTab As String
Dim lngRow As Long, lngCol As Long

strPath = "E:\Forum\Test" 'Verzeichnis der Quell-Dateien - Anpassen!

If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

strRef1 = "D1:D10000" 'Bereich erste bedingung, keine ganzen Spalten!
vntCon1 = """Danny""" 'Erste Bedingung, Text in doppel ""!
strRef2 = "H1:H10000" 'Bereich zweite Bedingung
vntCon2 = 1 'Zweite Bedingung

strTab = "Tabelle1" 'Tabellenname in Quelldatei(en) - Anpassen!

lngRow = 2 'Erste Formelzeile - Anpassen!
lngCol = 1 'Formelspalte - Anpassen!

strFile = Dir(strPath & "*.xlsx", vbNormal)

With Sheets("Tabelle1") 'Ausgabetabelle - Anpassen!
  .Range(.Cells(lngRow, lngCol), .Cells(.Rows.Count, lngCol)) = ""
  Do While strFile <> ""
    strFormula = "=SUMPRODUCT(('" & strPath & "[" & strFile & "]" & strTab & "'!" & _
      strRef1 & "=" & vntCon1 & ")*('" & strPath & "[" & strFile & "]" & strTab & "'!" & _
      strRef2 & "=" & vntCon2 & "))"
    .Cells(lngRow, lngCol).Formula = strFormula
    lngRow = lngRow + 1
    strFile = Dir
  Loop
End With
End Sub


Gruß Sepp

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 11:27:37
Daniel
Vielen Dank,
ich fürchte ich bin einfach zu blöd. Ich weiß nicht mal richtig, wie ich dieses VBA schreiben und abspeichern muss...das ist doch dieses Visual Basic-Makro oder?
So, ich kann ja nochmal die Pfade angeben
Ausgabedatei: C:\Reporting\AKK.xlsx
Quelldateien: C:\Reporting\ProcessReport\...
Unten angehängt einmal schematische Beispieldateien, bei denen jetzt nur die erstmal relevanten Daten eingetragen sind.
https://www.herber.de/bbs/user/99776.xlsx
https://www.herber.de/bbs/user/99777.xlsx
Vielleicht ist das wirklich noch zu hoch für mich :X

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 12:12:07
Daniel
So ok,
ich habe jetzt einen Ansatz gefunden, den ich mag, verbunden mit einer Schaltfläche. Zwei Sachen möchte ich aber daran noch verbessern.
Sub Schaltfläche1_KlickenSieAuf()
Workbooks.Open "c:\Reporting\ProcessReport\KW34.xlsx"
End Sub
1. Es soll nicht nur eine Datei im Ordner "ProcessReport" geöffnet werden, sondern alle
2. Die Dateien sollen möglichst "unsichtbar" bzw. im Hintergrund geöffnet werden.
3. Die Dateien sollen dann nach einmal öffnen direkt wieder geschlossen werden.
Ist das so umsetzbar?

AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 12:22:38
Sepp
Hallo Daniel,
der Code gehört in ein allgemeines Modul deiner Ausgabedatei. Einfach den Code kopieren und einfügen. Pfad anpassen und F5 drücken. Du kannst den Code natürlich auch einer Schaltfläche zuweisen.
An deinen Beispieldateien ersehe ich, das es da wahrscheinlich doch um mehr geht. Dann solltest du aber auch mit mehr Informationen rausrücken.
Gruß Sepp

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 13:32:29
Daniel
Wie gesagt,
aktuell möchte ich ehrlich gesagt, einfach nur noch wissen, ob die oben bereits beschriebenen Punkte umsetzbar sind.
1. Es soll nicht nur eine Datei im Ordner "ProcessReport" geöffnet werden, sondern alle
2. Die Dateien sollen möglichst "unsichtbar" bzw. im Hintergrund geöffnet werden.
3. Die Dateien sollen dann nach einmal öffnen direkt wieder geschlossen werden.
Ich habe dazu im Ansatz hier im Forum folgendes gefunden:
Sub rolf()
Dim DatSearch As FileSearch
Dim k As Integer, i As Integer
Set DatSearch = Application.FileSearch
Path = "C:\test" 'hier anpassen
With DatSearch
.LookIn = Path
.Filename = "*.xls"
.Execute
i = .FoundFiles.Count
For k = 1 To i
Workbooks.Open .FoundFiles(k)
Next
End With
End Sub
Jedoch kommt da immer die Fehlermeldung
Laufzeitfehler 445
Objekt unterstützt diese Aktion nicht
(Den Pfad habe ich oben natürlich angepasst)
Wenn ich dann auf Debuggen gehe, bleibt er bei der Zeile
Set DatSearch = Application.FileSearch
hängen.
Das ist ja nur dafür da, dass alle Dateien geöffnet werden. Die Dateien sollen aber im Hintergrund (also quasi unsichtbar) geöffnet und im Anschluss wieder geschlossen werden

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 13:59:45
Sepp
Hallo Daniel,
du wolltest Daten aus den Dateien auslesen, genau das macht mein Code indem die Formeln entsprechend der Dateien im Ordner erstellt werden!
Wozu willst du jetzt auf einmal die Dateien öffnen? Das nützt dir bei ZÄHLENWENNS() nichts, den wenn die Dateien wieder geschlossen sind, rechnet die Formel nicht, weil sie auf geschlossene Dateien eben nicht zugreifen kann.
Und wozu Dateien öffnen, wenn es nicht erforderlich ist?
PS: .FieSearch wird nicht mehr unterstützt!
Gruß Sepp

AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 14:04:11
Daniel
Naja, die Daten werden dann aber in der Ausgabedatei aktualisiert, wenn die Quelldateien einmal geöffnet und geschlossen werden. Für mich ist genau das zumindest gefühlt die einfachste Lösung, weil ich da nichts spezifisches auslesen und somit auch in der VBA berücksichtigen muss. Daher ist das bloße Öffnen und Schließen im Hintergrund am einfachsten

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 14:21:10
Sepp
Hallo Daniel,
anbei deine datei mit angepasstem Code und SUMMENPRODUKT() anstatt ZÄHLENWENNS().
Summenprodukt funktioniert auch bei geschlossenen Dateien und du brauchst nur aktualisieren, wenn neue Dateien dazukommen, dann werden die Formeln automatisch gesetzt! Die Dateien werden nach den Überschriften in Zeile 3 (KW34, KW35,...) gesucht.
https://www.herber.de/bbs/user/99778.xlsm
Gruß Sepp

AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 15:22:46
Daniel
Wow,
vielen Dank...Es funktioniert prima :) Wenn sich anstatt D und H die Spalten ändern, passe ich das in der VBA oben und auch in der Tabelle selbst an und das war es, richtig?
Vielen, vielen Dank!

Anzeige
AW: Quelldateien per Befehl aus einem Ordner öffnen
23.08.2015 15:30:40
Sepp
Hallo Daniel,
in der Tabelle brauchst du gar nichts ändern, ausser den Überschriften natürlich
Gruß Sepp

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige