Werte aus geschlossenen Dateien einlesen

Bild

Betrifft: Werte aus geschlossenen Dateien einlesen
von: Matze
Geschrieben am: 27.09.2003 01:23:24

Guten Tag

Hoffe hier Hilfe zu finden.

Also, muß etwas Vorgeschichte vorher klimpern.
Wir nehmen regelmäßig Daten zu 15 Kategorien auf, in jede Zeile eine Kategorie. Und in jede Spalte etwas anderes (Strom, Auslastung, Temperatur, usw.). Diese Tabelle wird dann unter dem Datum des jeiligen Tages gespeichert.
Zur Zeit lese ich die Werte in 15 Tabellen in meiner Auswertungstabelle beim öffnen automatisch ein.
Ich muß jedoch wenn wieder die Daten aufgenommen wurden die neue Datei mit den neuen Werte in die nächste Zeile meiner Auswertungstabelle manuell nachtragen.
Ist immer sehr mühsehlig und zeitraubend.
In dieser Auswertungstabelle habe ich eine Tabelle wo meine Diagramme immer generiert werden.
Dort habe ich oben 15 Schaltflächen, wird auf eine Schaltfläche geklickt, so wird der Zellinhalt aus der entsprechenden Tabelle in meine Diagrammtabelle kopiert und aus diesem Zellinhalt bestehen die Diagramme.
Nun möchte ich aber das ich in Spalte A die Dateinamen (Datum) untereinander eintrage.
Und wenn auf eine Schaltfläche geklickt wird, werden die gewünschten Zellinhalte aus den einzelnen Dateien kopiert und in meine Auswertungstabelle bei den entsprechenden Datumwerten eingetragen. Dabei soll er sich die Dateinamen aus den Datumwerten aus Spalte A generieren.
Und aus kopierten Werten aus den anderen Dateien werden dann die Diagramme generiert. Dabei möchte ich auch außer der Auswertungstabelle keine weitere Datei öffnen.
Das soll alles automatisch passieren.
Neues Datum eintragen, eine der 15 Schaltflächen klicken, Excel holt sich die Werte und füllt die Zellen mit den Werten und ich schau mir die Kurven im Diagramm an.

Hoffe das ihr mir helfen könnt.
Vielen Dank im voraus.

Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: WernerB.
Geschrieben am: 27.09.2003 16:22:03

Hallo Matze,

leider fehlen in Deiner Anfrage einige für einen Makro-Programmierer wichtige Informationen, deshalb hier nur ein Beispiel, wie man Daten aus einer geschlossenen Mappe per Makro mit zugehöriger Funktion auslesen kann:


Option Explicit

Function xl4Value(strParam As String) As Variant
    xl4Value = ExecuteExcel4Macro(strParam)
End Function


Sub AktualBasismittel()
Dim strSource As String
    strSource = "'C:\TEMP\[Mappe.xls]Blattname'!R5C2"
    Range("B1").Value = xl4Value(strSource)
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).


Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: Matthias Dettmer
Geschrieben am: 28.09.2003 04:19:18

Danke für deine Antwort.

Ich werde versuchen auf deinem Makro basierend etwas zu zaubern, mal sehen ob mich das alleine schon weiterbringt.
Es währe noch nett wenn duz mir erklärst was in deinem Beispiel genau passiert.
Und bitte sage doch welche Informationen du noch brauchst, vielleicht kann ich deine Fragen beantworten sodaß du vielleicht mein Problem besser verstehst und mir noch mehr helfen kannst.


Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: WernerB.
Geschrieben am: 28.09.2003 11:16:54

Hallo Matthias,

Versuch einer Erklärung:
In dieser Zeile werden der Pfad, die Datei, das Blatt und die Zelladresse definiert, die ausgelesen werden soll (geschlossene Datei):
strSource = "'C:\TEMP\[Mappe.xls]Blattname'!R5C2"

In dieser Zeile wird in der Zelle "B1" der geöffneten Datei der Zellwert eingetragen, der per Funktion ("xl4Value") aus der geschlossenen Datei ausgelesen wird:
Range("B1").Value = xl4Value(strSource)

Um Dir eine vernünftiges Makro zu basteln, sollte der Programmierer detailliert wissen,
wo aus welcher geschlossenen Quell-Datei (Pfad, Dateiname, Blattname, Zelladresse) ein Wert ausgelesen werden soll und wo er in der Ziel-Datei (Blattname, Zelladresse) eingetragen werden soll. Natürlich kann auch die Zeile per Makro ermittelt werden (z.B. letzter Eintrag in Spalte "A"), aber dann sollte die Spalte bekannt sein.

Sollen mehrere Einträge erfolgen, sollte dazu vorher eine entsprechend detaillierte Liste erstellt werden; die Gabe des Hellsehens wurde mir nicht mit in die Wiege gelegt und eine Glaskugel besitze ich auch nicht ...


Gruß WernerB.


Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: Matthias Dettmer
Geschrieben am: 28.09.2003 11:42:59

Und wieder danke !
Also brauche ich für meine Tabelle nur die beiden oben erklärten Zeilen.
Weil in deinem anderen Beitrag standen da noch mehr.
Siehe hier.
Option Explicit


Function xl4Value(strParam As String) As Variant
    xl4Value = ExecuteExcel4Macro(strParam)
End Function

Oder wird hier die Funktion "xl4Value" definiert.
Wenn ja erklär mir das bitte auch noch mal, das wäre wie Ostern und Weihnachten zusammen.

Den Pfad/Dateinamen und Blattnamen könnte ich mir noch selbst ableiten.
Ich probiers mal, sag mir nur noch ob ichs richtig gemacht hab.


Sub AktualBasismittel()
Dim strSource As String
    strSource = "'L:\WMAG\MDR\Lenze\[Auswertung.xls]Tabelle1'!B3G3"
    Range("B4").Value = xl4Value(strSource)
End Sub


Achso, ich hab hier nochne Glaskugel rumliegen.
Das war ein Fehlkauf ich brauchte ne kleinere, wenn du mit großen umgehen kannst sag bescheit vielleicht können wir ins Geschäft kommen.
Aber ich hoffe du weißt daß die großen 1. nicht billig sind und 2. durch ihre größe allen möglichen Kram sehen, also wenn du nicht mit umgehen kannst, dann wirst du nur ein durcheinander sehen.

Also meld dich und dann bin ich wieder dran.
So machs gut.


Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: WernerB.
Geschrieben am: 28.09.2003 14:55:19

Hallo Matthias,

die Funktion (unverändert!) gehört ebenso in ein normales Standard-Modul wie ein normales Makro.

Die Funktion wird vom Makro aufgerufen.
Das kannst Du verfolgen, wenn Du ein fehlerfreies Makro hast, indem Du das Makro im VB-Editor mit der F8-Taste zeilenweise abarbeitest; dann siehst Du, wie es in die Funktion hineinspringt und sich den Wert aus der geschlossenen Datei holt.

Bei der Anpassung des Makros scheinen Dir aber ein paar Fehler unterlaufen zu sein.
- Der Dateiname (Auswertung.xls) ist doch der Name der Ziel-Datei, in die etwas hineingeschrieben werden soll, oder irre ich mich da? Hier gehört aber der Name der geschlossenen Quell-Datei hinein, aus der ein Wert ausgelesen werden soll!
- Die Zelladresse 'B3G3' ist falsch. Die Adresse in meinem Beispiel 'R5C2' bedeutet:
Row (Zeile) 5, Column (Spalte) 2; das entspricht also "B5". Die Buchstaben R und C stehen also für Row und Column und müssen so immer verwendet werden. Auch kann man damit nicht ganze Zellbereiche auslesen, sondern nur immer nur einzelne Zellen. Zum Auslesen von Zellbereichen kann man ggf. Schleifen verwenden.


Gruß WernerB.


Bild


Betrifft: AW: Werte aus geschlossenen Dateien einlesen
von: Matthias
Geschrieben am: 28.09.2003 15:22:03

Aha jetzt ist mir alles klar.

Naja ich wollt auch nur mal schauen ob du auch aufpaßt. HIHI

Den Rest sollte ich jetzt wohl hinkriegen, werd es heut Abend auf Arbeit ausprobieren und gebe dann bescheit.


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Werte aus geschlossenen Dateien einlesen"