Excel-Dateien schnell auslesen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Excel-Dateien schnell auslesen

    Hallo miteinander,

    ich habe die Frage ob es einen Weg gibt Excel Dateien schnell auszulesen.
    Mein größtes Problem ist dabei die Zeit, ich lese für meine Programme mehrere Werkzeuglisten oder ähnlichem (was immer in Excelformat ist) aus und das dauert meist etwas.
    aktuell mach ich das mit folgendem Code:

    Workbooks.Open (Pfad_GD)
    Set wkbDaten = Workbooks(Mid(Pfad_GD, InStrRev(Pfad_GD, "\") + 1, 999))
    Set wksDaten = wkbDaten.Sheets("GD - APME 100")

    Das dauert aber weil die Datei im hintergund geöffnet wird und bei größeren Dateien dauert es entsprechend aus lange.

    Hat jemand ein Code womit es schneller geht?

    Danke im vorraus.
    Felix
    Das hier sollte noch gehen:

    support.leapwork.com/hc/en-us/…a-ODBC-driver-in-LEAPWORK

    Du kannst Exceltabellen über ODBC ansprechen. Ich denke das geht eventuell schneller.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Vielen Dank für die Antwort.

    Bei dem Vorschlag ODBC muss ich also über ein extra Programm arbeiten?
    Muss ich das Programm dann auf jedem Rechner installieren auf dem mein Programm laufen soll oder reicht es wenn das Programm auf meinem Rechner ist?

    Gibt es auch Möglichkeiten ohne ein extra Programm, also rein über Code?
    Es gibt die Möglichkeit per "Excel4Macro".
    Das hatte ich mal vor ewigen Jahren implementiert (mittlerweile mache ich nichts mehr mit VBA).
    Wenn ich mich richtig erinnere geht das über Formeln (also so als würdest du in einer Zelle Bezug auf eine andere Excel nehmen).
    Hat bestimmt auch ein paar Nachteile, aber kann mich ehrlich gesagt nicht mehr daran erinnern.

    Visual Basic-Quellcode

    1. Private Function getValue(path As String, document As String, sheet As String, cell As String)
    2. 'Daten aus geschlossener Arbeitsmappe auslesen
    3. Dim arg As String
    4. If Right(path, 1) <> "\" Then path = path & "\"
    5. If Dir(path & document) = "" Then
    6. getValue = "Datei gibt's nicht"
    7. Exit Function
    8. End If
    9. arg = "'" & path & "[" & document & "]" & sheet & "'!" & Range(cell).Range("A1").Address(, , xlR1C1)
    10. 'Auslesen ueber Excel4Macro
    11. getValue = ExecuteExcel4Macro(arg)
    12. End Function
    Vielen Dank, ich habe mal getestet mit dem Beispiel.

    Funktioniert an sich gut und auch schneller als normal, das ist schon mal super.

    Kann man über diese Funktion irgendwie auf die namen der Blätter auslesen?
    Kann man über diese Funktion irgendwie barufen ob die gewählte Zelle verbunden ist?

    Wenn das noch gehen würde wäre die Funktion perfekt.

    fiedel93felix schrieb:

    Bei dem Vorschlag ODBC muss ich also über ein extra Programm arbeiten?
    Nein, so wie du in Excel eine Datenbanktabelle live laden kannst, geht das auch mit einer anderen Excel-Tabelle.

    fiedel93felix schrieb:

    Kann man über diese Funktion irgendwie auf die namen der Blätter auslesen?
    als Formel:
    exceljet.net/formula/get-sheet-name-only
    In VBA:
    docs.microsoft.com/de-de/office/vba/api/excel.worksheet.name
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --