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
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
Rot Loop ohne Do
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 19:33:39
Views:
496
Rating: Antwort:
  Ja
Thema:
Loop ohne Do

Vorschlag zur Gemütlichkeit:

Option Explicit

Sub Allesamt()

Dim oTargetSheet As Excel.Worksheet          'mein Ziel, wo später als CSV
Dim oSourceBook As Excel.Workbook            'Quelle(n)
Dim sPfad As String
Dim sDatei As String
Dim Flag As Boolean                          'Schalter ob
Dim TargetRange As Range                     'Zielzelle
Dim strNeuCSV As String                      'Datei speichern unter
        
   Application.ScreenUpdating = False 'Das "Flackern" ausstellen
   Application.DisplayAlerts = False 'Keine Fehlermeldungen anzeigen
                
   'Schleife über alle Excel Dateien in einem Verzeichnis
   'sPfad = "Z:\dep_Controlling-WSA\07 Monatsabschluss\ILV-Makros\Stundenerfassung\Einzelbelege\"
        
        '****************************************
        ''Pfad zum Test geändert
        sPfad = ThisWorkbook.Path & "\MeinTest\"
        '****************************************
        '
        
   sDatei = Dir(sPfad & "*.xlsx*")    'Alle Excel Dateien
   
   Do While sDatei <> ""
        
      'Öffnen der Datei und Datenübertragung
      If Not Flag Then
         'Anfang - erste xlsx
         Set oSourceBook = Workbooks.Open(sPfad & sDatei)
         oSourceBook.Sheets(1).Copy
         'hurra - neue Mappe
         Set oTargetSheet = ActiveWorkbook.Sheets(1)
         'im einzigen Arbeitsblatt
         With oTargetSheet
            'Quellangabe
            .Rows(1).Insert
            .Cells(1).Value = oSourceBook.Name
            With .UsedRange
               'nächstes Kopierziel
               Set TargetRange = .Rows(.Rows.Count).Cells(1).Offset(2)
            End With
         End With
         oSourceBook.Close False
         '
         'nie mehr wieder
         Flag = True
         '
      Else
         '
         'weitere - xlsx
         Set oSourceBook = Workbooks.Open(sPfad & sDatei)
         'Inhalt ins Ziel
         oSourceBook.Sheets(1).UsedRange.Copy TargetRange
         'Quellangabe - in die leere Zeile vor
         TargetRange.Offset(-1).Value = oSourceBook.Name
         oSourceBook.Close False
         'nächstes Kopierziel
         With oTargetSheet.UsedRange
            'nächstes Kopierziel
            Set TargetRange = .Rows(.Rows.Count).Cells(1).Offset(2)
         End With
         '
      End If
      
      sDatei = Dir
                                                      
   Loop
                       
   'als CSV speichern
   strNeuCSV = InputBox("CSV-Dateiname ", "Speichern unter", "Test")
   If Len(strNeuCSV) Then
      strNeuCSV = Replace(strNeuCSV, ".", "")
      strNeuCSV = Replace(LCase(strNeuCSV), "csv", "")
      With oTargetSheet.Parent
         .SaveAs Filename:=sPfad & strNeuCSV & ".csv", _
            FileFormat:=xlCSV, CreateBackup:=False, Local:=True
         .Close True
      End With
      
   Else
      Call MsgBox("aktive Datei " & oTargetSheet.Parent.Name, vbExclamation)
   End If
                       
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
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
Rot Loop ohne Do
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