Thema Datum  Von Nutzer Rating
Antwort
11.12.2018 15:40:08 Anke
NotSolved
11.12.2018 15:48:07 Werner
NotSolved
11.12.2018 15:49:45 Gast96048
Solved
11.12.2018 15:51:18 Gast96048
Solved
12.12.2018 12:44:31 Gast72503
NotSolved
12.12.2018 12:54:04 Anke
NotSolved
12.12.2018 16:40:01 Gast96048
NotSolved
17.12.2018 11:25:42 Anke
NotSolved
Rot Loop ohne Do
17.12.2018 13:17:20 Gast96048
NotSolved
17.12.2018 16:26:44 Gast65833
NotSolved
17.12.2018 18:05:18 Gast96048
NotSolved
17.12.2018 18:17:06 Gast96048
NotSolved
17.12.2018 19:33:39 Gast96048
NotSolved
17.12.2018 19:39:46 Gast79011
NotSolved
18.12.2018 12:07:00 Anke
NotSolved
18.12.2018 13:44:40 Gast96048
NotSolved

Ansicht des Beitrags:
Von:
Gast96048
Datum:
17.12.2018 13:17:20
Views:
644
Rating: Antwort:
  Ja
Thema:
Loop ohne Do

Von wegen Dauerschleife, da hat es was beim Terminus Technicus

ad1)
- war im Code nie die Rede von, dass sich eine einmal benutzte Mappe irgendwie verflüchtigen soll
- wird eben schlicht und ergreifend wieder geschlossen
ad2)
- sollten doch alle Mappen im Pfad durchlaufen werden, d.h. wird das Makro erneut ....., dann eben
- oder wozu sonst der Error - Code

3 Varianten:
- einmal benutze Datei ist Muster ohne Wert und wird gelöscht
- ditto, jedoch in ein Verzeichnis deiner Wahl verschoben (das bereits angelegt)
- der Code prüft zur Laufzeit ob das zitierte Arbeitsblatt(1) schon angelegt, dann
-- eben ignorieren
-- oder die vorhandenen Daten überschreiben

Ergo, entscheide dich bitte für eine Möglichkeit und dann kann man(n) deinen Code entsprechend ergänzen

1
2
3
4
5
6
7
8
9
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Option Explicit
 
Sub Zusammenführen()
    Dim oTargetBook As Object
    Dim oSourceBook As Object
    Dim sPfad As String
    Dim sDatei As String
     
        Application.ScreenUpdating = False 'Das "Flackern" ausstellen
        Application.DisplayAlerts = False ' Keine Fehlermeldungen anzeigen
                 
        'Schritt 1: Arbeitsmappe festlegen, in die die neuen Sheets eingefügt werden...
        Set oTargetBook = ActiveWorkbook
         
        'Wichtiger Hinweis: Die Arbeitsblätter dürfen nicht vorhanden sein!
        'Alternativer Umbau: Löschen evtl. bereits vorhandener Arbeitsblätter
         
        'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
        ''sPfad = "\\dehgnt\dfs-hf\DE\Schiltach\dep_Controlling-WSA\07 Monatsabschluss\ILV Makros\Stundenerfassung"
        '****************************************
        ''Pfad zum Test geändert
        sPfad = ThisWorkbook.Path & "\MeinTest\"
        '****************************************
        '
        sDatei = Dir(CStr(sPfad & "*.xl*"))   'Alle Excel Dateien
         
        Do While sDatei <> ""
         
            'Schritt 3: öffnen der Datei und Datenübertragung
            Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True'nur lesend öffnen
             
            'Es wird immer das erste Tabellenblatt Sheets (1) kopiert!
            ''oSourceBook.Sheets().Copy after:=oTargetBook.Sheets(oTargetBook.Sheets.Count)
            '
            '*****************************************************************************
            'daher
            oSourceBook.Sheets(1).Copy after:=oTargetBook.Sheets(oTargetBook.Sheets.Count)
            '*****************************************************************************
             
            'Es wird versucht den Dateinamen als Arbeitsblattnamen zu setzen.
            'Ist dieser bereits vorhanden, wird der Fehler abgefangen und das neue Blatt
            'bekommt keinen anderen Namen und behält den typischen Namen Tabelle x
            On Error Resume Next
             
            'Arbeitsblattname wird der Dateiname
            oTargetBook.Sheets(oTargetBook.Sheets.Count).Name = sDatei
             
            'Wenn ein Fahler aufgetreten ist, wird dieser resettet
            If Err.Number <> 0 Then
                Err.Numer = 0
                Err.Clear
            End If
            On Error GoTo 0
             
            'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
            oSourceBook.Close False 'nicht speichern
            '
            '*********************************************
            ' es fehlte der Schritt zur nächsten Datei
            sDatei = Dir
            '
         ' es fehlte Loop
         Loop
         '************************************************
          
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
11.12.2018 15:40:08 Anke
NotSolved
11.12.2018 15:48:07 Werner
NotSolved
11.12.2018 15:49:45 Gast96048
Solved
11.12.2018 15:51:18 Gast96048
Solved
12.12.2018 12:44:31 Gast72503
NotSolved
12.12.2018 12:54:04 Anke
NotSolved
12.12.2018 16:40:01 Gast96048
NotSolved
17.12.2018 11:25:42 Anke
NotSolved
Rot Loop ohne Do
17.12.2018 13:17:20 Gast96048
NotSolved
17.12.2018 16:26:44 Gast65833
NotSolved
17.12.2018 18:05:18 Gast96048
NotSolved
17.12.2018 18:17:06 Gast96048
NotSolved
17.12.2018 19:33:39 Gast96048
NotSolved
17.12.2018 19:39:46 Gast79011
NotSolved
18.12.2018 12:07:00 Anke
NotSolved
18.12.2018 13:44:40 Gast96048
NotSolved