Datenauslesen

Bild

Betrifft: Datenauslesen
von: Jürgen
Geschrieben am: 07.12.2003 21:13:13

Hallo zusammen,
vielleicht kann mir ja jemand weiterhelfen.
Brauche verschiedene Daten aus verschiedenen Dateien,
habe mir ein kleines Programm geschrieben das auch gut funktioniert.
Da diese Daten nicht immer in jeder Datei an der gleichen Stelle stehen, suche ich diese mir in jeder Datei einzeln.
Nun meine Frage: Gibt es eine Möglichkeit dieses Programm auch auf eine geschlossene Datei anzuwenden, sprich die Dateien gar nicht zu öffnen und trotzdem die benötigten Daten herauszulesen?

Vielen Dank für Eure Mühe.
Gruß
Jürgen

Bild


Betrifft: AW: Datenauslesen
von: PeterW
Geschrieben am: 07.12.2003 21:54:00

Hallo Jürgen,

auf geschlossene Dateien kannst du per Formel zugreifen. Schreib in deinem Code in die entsprechenden Zellen Formeln mit den Verweisen auf die geschlossene Datei und weise dann den Zellen deren Zellwerte zu. Mit VBA gut dürfte das für dich kein großes Problem sein.

Gruß
Peter


Bild


Betrifft: AW: Datenauslesen
von: Nepumuk
Geschrieben am: 07.12.2003 21:54:19

Hallo Jürgen,
um erst einmal mit dem Märchen von lesen in geschlossenen Mappen aufzuräumen folgendes. Excel kann nicht mit Dateien kommunizieren die geschlossen auf der Festplatte liegen. Von Excel geht eine Anfrage an den Prozessor. Der sagt dem Festplattencontroller, gib mir mal die Datei. Wenn diese dann im Arbeitsspeicher und falls der zu klein, im Swapspeicher liegt, kommt Excel an die Daten ran. Das merkst du spätestens dann, wenn die Mappe mit einem Schreib- Leseschutzkennwort versehen ist. Da kommt nämlich die Kennwortabfrage.

Zu deinem Anliegen. Wenn feststeht, in welcher Tabelle und welcher Zelle der von dir gesuchte Wert sich befindet, macht es Sinn auf das explizite öffnen der Mappe zu verzichten. Wenn aber ein Programm in der Mappe suchen muss, um z.B. ein bestimmtes Datum zu finden oder den letzten Eintrag in einer Spalte/Zeile, so bringt das Verfahren keinerlei Gewinn. Du müsstest dich nämlich seriell durchlesen und jeden gelesenen Wert prüfen. Da habe ich die Mappe aber locker geöffnet, gelesen und wieder geschlossen.

Es gibt auch noch die Möglichkeit, die Mappe mit GetObject zu öffnen. Die ist auch etwas schneller wie normal und die Mappe bleibt ausgeblendet, kann aber ganz normal bearbeitet werden.

Und so geht das lesen in einer nicht explizit geöffneten Mappen:
Option Explicit
Public Sub Verzeichnis()
    Dim strPfad As String, strDatei As String, strTabelle As String, strAdresse As String
    strPfad = ThisWorkbook.path & "\"
    strDatei = "y.xls"
    strTabelle = "Test"
    strAdresse = "A5"
    Cells(1, 1) = hole_Werte(strPfad, strDatei, strTabelle, strAdresse)
End Sub
Private Function hole_Werte(strPfad As String, strDatei As String, strTabelle As String, strAdresse As String)
    hole_Werte = ExecuteExcel4Macro("'" & strPfad & "[" & strDatei & "]" & strTabelle & "'!" & Range(strAdresse).Range("A1").Address(, , xlR1C1))
End Function


Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk


Bild

Beiträge aus den Excel-Beispielen zum Thema " aufruf von tabellenblättern mit vba/fehlermeldung"