Thema Datum  Von Nutzer Rating
Antwort
10.12.2020 08:32:44 Doris
NotSolved
Blau Prozess beim auslesen von Daten aus geschlossener Datei beschleunigen
10.12.2020 09:44:45 volti
NotSolved
10.12.2020 10:32:41 Doris
NotSolved
10.12.2020 10:39:23 Doris
NotSolved
10.12.2020 10:58:46 Doris
NotSolved
10.12.2020 11:29:56 Doris
NotSolved
10.12.2020 12:41:09 volti
NotSolved
17.12.2020 13:57:01 Doris
NotSolved
17.12.2020 14:24:51 volti
NotSolved
17.12.2020 15:13:56 Doris
NotSolved
17.12.2020 16:12:28 Volti
NotSolved
17.12.2020 16:28:44 Doris
NotSolved

Ansicht des Beitrags:
Von:
volti
Datum:
10.12.2020 09:44:45
Views:
503
Rating: Antwort:
  Ja
Thema:
Prozess beim auslesen von Daten aus geschlossener Datei beschleunigen

Hallo Doris,

eine Idee wäre, das über eine XL4-Funktion zu machen. Die ist sehr schnell, zumindest wenn es um einzelne Werte geht.

Hier ein (leider noch ungetestetet) Beispiel, wie das laufen könnte...

Du müsstest allerdings noch den Blattnamen aus der Quelldatei angegeben.

Code:
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
Sub GetData()
  Dim oMe As Worksheet, iZeile As Long, oDatei As Object
  Dim oFS As Object, wbQuelle As Workbook, sBlatt As String
  
  Set oMe = ThisWorkbook.ActiveSheet
  Const sDateiPfad As String = " \" ' Pfad anpassen
  iZeile = 19
  
  Application.ScreenUpdating = False
  
  Set oFS = CreateObject("Scripting.FileSystemObject")
  For Each oDatei In oFS.GetFolder(sDateiPfad).Files
     If InStrRev(oDatei.Name, "xlsx") Then

        sBlatt = "DeinBlattname"
        oMe.Cells(iZeile, 2) = GetValue(sDateiPfad, oDatei.Name, sBlatt, Range("B5"))
        oMe.Cells(iZeile, 2) = GetValue(sDateiPfad, oDatei.Name, sBlatt, Range("B13"))
        iZeile = iZeile + 1
     End If
  Next
  
  Set oMe = NothingSet wbQuelle = Nothing
End Sub



Private Function GetValue(ByVal sPath As StringByVal sFile As String, _
  ByVal sSheet As String, oTarget As ObjectAs Variant
' Einen Wert aus einer Datei holen
  On Error GoTo ErrorHandler
  If Right$(sPath, 1) <> "\Then sPath = sPath & "\"
  GetValue = ExecuteExcel4Macro("'" & sPath & "[" & sFile & "]" & sSheet & "'!" _
  & oTarget.Range("A1").Address(, , xlR1C1))
  Exit Function
ErrorHandler:
  GetValue = CVErr(xlErrRef)
End Function
 
_________
viele Grüße
Karl-Heinz

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen