Zugriff aus Excel auf fortlaufend neue Datein

Von: , Frage gestellt am Do, 2. Nov 2006

Guten Tag,

ich versuche mich gerade an folgendem Problem:

ich habe viele Exceldatein, indenen Maschinenparameter hinterlegt sind. Der Dateiname ist immer das Datum(Bsp. 01.02.06.xls)

Ich möchte jetzt für ein Jahr alle Datein auslesen. Und zwar immer bestimmte Zellen aus jeder Datein(immer die Gleiche Zelle). Die Ausgelesenen Daten möchte ich in einer Datei eintragen, damit ich sie später auswerten kann.

Als einfaches Beispiel:
Es gibt für jeden Tag eine Datei mit dem Datum als Dateiennamen(wie oben beschrieben).

Jetzt möchte ich aus allen Datein in einem Verzeichnis immer die Zelle A1 auslesen, in der die Betriebszeit steht. Die ausgelesenen Daten möchte ich in einer Datei zusammentragen, um die Gesamtlaufleistung aus der Maschine zu ermitteln.

Folgendes hatte ich probiert:
ich habe in einer Spalte das fortlaufende Datum erstellt. Habe dann mit Verketten damit und dem Verzeichnispfad die Zieldatei lokalisiert. In einer weiteren zelle dann noch den Pfad, die Datei und die Zelle zusammengefügt. Damit habe ich dann per "Indirekt" mit verweis auf die Zelle versucht in die Datein mit den Daten zu greifen uns somit den Wert der Zelle zu kopieren. Leider hat dies nicht geklapp!

=INDIREKT(G25)
{Inhalt von G25} =("'"&D13&"["&(G23)&"]Tabelle1'!"&"$A$1")
{Inhalt von D13} 01.02.06.xls
{Inhalt von G23} C:\Maschinendaten
Hat jemand eine Idee?

Danke und beste Grüße!

3 Antworten zu dieser Frage

  1. Antwort von nach 43 Minuten 0 hilfreich
    Re: Zugriff aus Excel auf fortlaufend neue Datein

    Hallo,

    deine Idee war nicht schlecht, aber leider funktioniert die Funktion "indirekt" nicht mit externen Dateien, es sei denn Sie sind geöffnet.
    Ich habe folgendes Makro entworfen, welches Dein Problem eigentlich schnell lösen sollte.
    Es muss lediglich gewährleistet sein, dass immer das gleiche Datumsformat als Dateiname verwendet wird und alle Dateien im gleichen Ordner liegen.
    Hier der Code:

    Sub WerteAuslesen()
    'diesen Bereich anpassen
    Const DateiPfad = "C:\test\"
    Const QuelleTabellenName = "Tabelle1"
    Const QuelleZelle = "A1"
    'anpassbarer Bereich Ende
    Dim Dateiname As String
    Dim Jahr As String
    Dim SuchDatName As String
    Dim GefDatName As String
    Dim Inputdatei As Workbook
    Dim Ausgabeblatt As Worksheet
    Dim zeilenzähler
    Jahr = InputBox("Bitte Jahr eingeben!")
    If Jahr = "" Then Exit Sub
    If Len(Jahr) = 4 Then Jahr = Right(Jahr, 2)
    zeilenzähler = 1
    SuchDatName = "??.??." & Jahr & ".xls"
    Set Ausgabeblatt = ThisWorkbook.Worksheets(1)
    GefDatName = Dir(DateiPfad & SuchDatName)
    While Not GefDatName = ""
    Set Inputdatei = Workbooks.Open(DateiPfad & GefDatName)
    With Ausgabeblatt
    .Cells(zeilenzähler, 1) = Left(GefDatName, 8)
    .Cells(zeilenzähler, 2) = Inputdatei.Worksheets(QuelleTabellenName).Range(QuelleZelle)
    End With
    zeilenzähler = zeilenzähler + 1
    Inputdatei.Close False
    Set Inputdatei = Nothing
    GefDatName = Dir()
    Wend
    If zeilenzähler = 1 Then MsgBox "Keine Datei für das eingegebene Jahr gefunden!"
    End Sub
    


    Gruß, tester [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 3 Tagen 0 hilfreich
      Re^2: Zugriff aus Excel auf fortlaufend neue Datei

      Vielen Dank an alle! Hat mir geholfen, und das Problem gelöst!

  2. Antwort von nach 2 Stunden 0 hilfreich
    Re: Zugriff aus Excel auf fortlaufend neue Datein

    ich habe viele Exceldatein, indenen Maschinenparameter
    hinterlegt sind. Der Dateiname ist immer das Datum(Bsp.
    01.02.06.xls) Ich möchte jetzt für ein Jahr alle Datein auslesen. Und zwar
    immer bestimmte Zellen aus jeder Datein(immer die Gleiche
    Zelle). Die Ausgelesenen Daten möchte ich in einer Datei
    eintragen, damit ich sie später auswerten kann.
    ich habe in einer Spalte das fortlaufende Datum erstellt. Habe
    Hi Ingmar,

    In A1:Ax stehen deine Daten, in H1:Hx erscheinen dann die Werte, ansonsten:

    Tabellenblattname: Tabelle1
    F         G       
    1     Pfad    C:\test   
    2  Tabelle   Tabelle1   
    3    Zelle       $A$1   
    4     Jahr          6   
    

    Dann in ein Modul:
    Option Explicit
    Sub Hole()
    Dim Zei As Long, FormA As String, FormB As String, Jahr As Integer
    Columns(8).Clear  '1=A, B=2,   H=8
    Application.ScreenUpdating = False
    FormA = "='" & [G1] & "\["
    FormB = ".xls]" & [G2] & "'!" & [G3]
    Jahr = IIf(Len([G4]) = 4, [G4], 2000 + [G4])
    For Zei = 1 To Range("A65536").End(xlUp).Row 'letzte Zeile in A
    If Year(Cells(Zei, 1)) = Jahr Then Cells(Zei, 8).Formula = FormA & Format(Cells(Zei, 1), "dd.mm.yy") & FormB    '8=H
    Next Zei
    Range("H1:H" & Zei - 1).Copy
    Range("H1").PasteSpecial Paste:=xlValues, Operation:=xlNone
    Application.CutCopyMode = False
    Range("H1").Select
    Application.ScreenUpdating = True
    End Sub
    Gruß
    Reinhard

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!