Thema Datum  Von Nutzer Rating
Antwort
26.05.2021 08:04:43 el_kaeckel
Solved
26.05.2021 08:43:36 Gast52075
NotSolved
26.05.2021 10:30:43 el_kaeckel
NotSolved
26.05.2021 11:38:10 Gast52075
NotSolved
26.05.2021 14:13:56 el_kaeckel
NotSolved
26.05.2021 14:57:11 Gast52075
NotSolved
26.05.2021 15:05:00 el_kaeckel
NotSolved
Blau Automatisierte Auftragsliste
27.05.2021 08:36:33 Gast52075
NotSolved
27.05.2021 09:09:21 el_kaeckel
NotSolved
27.05.2021 09:11:57 el_kaeckel
NotSolved
27.05.2021 10:39:28 Gast52075
NotSolved
27.05.2021 11:48:51 el_kaeckel
NotSolved
27.05.2021 13:54:18 Gast52075
NotSolved
28.05.2021 12:24:24 el_kaeckel
NotSolved

Ansicht des Beitrags:
Von:
Gast52075
Datum:
27.05.2021 08:36:33
Views:
447
Rating: Antwort:
  Ja
Thema:
Automatisierte Auftragsliste

Hallo,
ja, jetzt versteh ich das besser. Danke dir :)

Ich habe es mal angepasst und mit Einzeltabellen getestet. Sollte aber auch mit mehreren Tabellen in einer Datei funktionieren.

Gruß

--- Makro ---

Option Explicit

Sub DatenHolen()
    Dim strPfad As String
    Dim strDatei As String
    Dim strExt As String
    
    Dim lngTabMax As Long
    Dim lngTab As Long
    
    Dim lngZmax As Long
    
    Dim WB As Workbook
    Dim WS As Worksheet
    
    Dim wsAusgabe As Worksheet
    
    'Fehlerbehandlung: ist nur das notwendigste
    On Error GoTo Aufräumen
    
    'AusgabeTabelle anpassen
    
    'eine neue Tabelle wird hinzugefügt
'    Set wsAusgabe = ThisWorkbook.Worksheets.Add
    
    'Fester Name
    Set wsAusgabe = ThisWorkbook.Worksheets("Tabelle1")
    
    Dim booAlleTabellen As Boolean
    
    Dim arrBereich As Variant
    Dim arrBereichIndex As Long
    
    Dim arrDaten As Variant
    
    Dim lngArrZmax As Long
    Dim lngArrSmax As Long
    
    'Pfadname anpassen
    strPfad = "C:\temp\test\"
    If Right(strPfad, 1) <> "\" Then strPfad = strPfad & "\"
    
    'Dateiendung anpassen
    strExt = "*.xls*"
        
    'Bereich der zu durchsuchenden Zellen anpassen
    arrBereich = Array("G2", "B6", "B8", "B9", "H8", "M9")
    
    'Anpassen: False = nur erste Tabelle; True = alle Tabellen
    booAlleTabellen = False
    
    If booAlleTabellen = False Then
        lngTabMax = 1
        Else
        lngTabMax = WB.Worksheets.Count
    End If
    
    'Erste Datei suchen
    strDatei = Dir(strPfad & strExt)
    'Solange noch Dateien da sind
    Do While Len(strDatei) > 0
        'Datei öffnen
        Set WB = Workbooks.Open(Filename:=strPfad & strDatei, ReadOnly:=True)
        If Not WB Is Nothing Then
            'Wenn Datei offen dann alle gewünschten
            'Tabellen durchgehen (eine oder alle)
            For lngTab = 1 To lngTabMax
                'Tabelle auswählen
                Set WS = WB.Worksheets(lngTab)
                'Bereich in Variable schreiben
                ReDim arrDaten(UBound(arrBereich))
                
                'alle Werte in Array schreiben
                For arrBereichIndex = LBound(arrBereich) To UBound(arrBereich)
                    arrDaten(arrBereichIndex) = WS.Range(arrBereich(arrBereichIndex)).Value2
                Next arrBereichIndex
                
                'Zielzeile suchen
                lngZmax = wsAusgabe.Cells(2 ^ 16, 1).End(xlUp).Row + 1
                'Daten ausgeben
                wsAusgabe.Range(wsAusgabe.Cells(lngZmax, 1), wsAusgabe.Cells(lngZmax, UBound(arrDaten) + 1)) = arrDaten
            
            Next lngTab
            'Datei schliessen
            WB.Close False
        End If
        'nächste Datei
        strDatei = Dir()
    Loop


Aufräumen:
    'Notfalls Datei schliessen
    On Error Resume Next
    WB.Close False
    On Error GoTo 0
    
    'Variablen zurücksetzen
    Set WB = Nothing
    Set WS = Nothing
    Set wsAusgabe = Nothing
End Sub

 


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

Thema Datum  Von Nutzer Rating
Antwort
26.05.2021 08:04:43 el_kaeckel
Solved
26.05.2021 08:43:36 Gast52075
NotSolved
26.05.2021 10:30:43 el_kaeckel
NotSolved
26.05.2021 11:38:10 Gast52075
NotSolved
26.05.2021 14:13:56 el_kaeckel
NotSolved
26.05.2021 14:57:11 Gast52075
NotSolved
26.05.2021 15:05:00 el_kaeckel
NotSolved
Blau Automatisierte Auftragsliste
27.05.2021 08:36:33 Gast52075
NotSolved
27.05.2021 09:09:21 el_kaeckel
NotSolved
27.05.2021 09:11:57 el_kaeckel
NotSolved
27.05.2021 10:39:28 Gast52075
NotSolved
27.05.2021 11:48:51 el_kaeckel
NotSolved
27.05.2021 13:54:18 Gast52075
NotSolved
28.05.2021 12:24:24 el_kaeckel
NotSolved