Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrere Mappen eines Ordner nacheinander verabeite

Mehrere Mappen eines Ordner nacheinander verabeite
12.05.2015 15:27:32
Susanne
Hallo,
wie lautet der Code wenn ich aus einem Ordner eine Mappe nach der anderen öffne, etwas verarbeite und die aktive Mappe wieder schliess um die nächste zu öffnen bis alle Mappen im Ordner verarbeitet sind. Mein Code schaut wie folgt aus:
Sub Zusammenspielen()
Dim strP As String, strP2 As String, strF As String, ii As Integer, strNewFile As String, C As Range
strP = "C:\Temp\IE-LS\"
strF = Dir(strP & "IE-LS*.xlsm ")
While strF ""
Workbooks.Open strP & strF, False, True
ii = ii + 1
For Each C In Range("A4:DW5611")
Sheets("Sths").Select
ActiveWindow.SmallScroll ToRight:=-1
Rows("4:5611").Select
Selection.Copy
Windows("Projektübersicht.xlsm").Activate
Rows("28:28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
Rows("28:28").Select
Selection.Insert Shift:=xlDown
Next
ii = ii + 1
Application.DisplayAlerts = False
With ActiveWorkbook
strNewFile = Left(.FullName, InStrRev(.FullName, ".")) & "xlsm"
.SaveAs strNewFile, FileFormat:=xlText, CreateBackup:=False
.Close False
End With
Application.DisplayAlerts = True
strF = Dir()
Wend
Er öffnet mir die erste Mappe, macht die Verarbeitung und speichert dann die Mappe, in der alles gesammelt warden soll ab und das wars. Er soll aber nach der Verarbeitung die nächste Mappe einlesen und Verarbeiten.
Was mache ich verkehrt?
Vielen Dank im Voraus bereits für eure Hilfe
Susanne

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Mappen eines Ordner nacheinander verabeite
12.05.2015 19:55:26
Luschi
Hallo Susanne,
ich glaube nicht, daß Excel einfach aufhört, sondern das Excel mit diesem Vba-Code imens beschäftigt ist.
Diese For-Schleife: For Each C In Range("A4:DW5611") läuft 712.216 (tausend)-mal, denn soviele Excel-Zellen hat dieser Bereich.
Und jedes mal wird das gemacht was zwischen diesem Schleifenkopf und der Next-Anweisung definiert ist.
Ich glaube kaum, daß dies so gewollt ist. Aber auch sonst sind einige Vba-Klöpse drin, da nicht mit Objektvariablen gearbeitet wird, sondern der Code doch stark nach Makro-Aufzeichnung aussieht.
ein Beispiel: Range("A4:DW5611") aus dem For-Schleifen-Kopf
- wer hier sagen kann, wie der Tabellenname heißt, aus dem dieser Bereich stammt, der hat
  10 Freibier bei mir gut
- das Einzige was man darüber weiß, ist, daß es die Tabelle ist, die man gerade auf dem Monitor
  sieht (ActiveSheet) aus der Arbeitsmappe, die gerade geöffnet wurde (Workbook.Open)
- und mit solchen Voraussetzungen ist nicht gut KIirschen essen bei der Datenübernahme aus
  anderen Dateien!
- der Select-Befehl und der Datenzugriff mittels Selection sind hier absolut tabu
- hier muß mit Objekt-Variablen gearbeitet werden!
- deshalb mal ein kleiner Anfang

Sub Zusammenspielen()
Dim wb1 As Workbook, wb2 As Workbook, _
ws1 As Worksheet, ws2 As Worksheet, _
rg1 As Range, rg2 As Range, _
C As Range
Dim strP As String, strP2 As String, strF As String, _
ii As Integer, strNewFile As String
strP = "C:\Temp\IE-LS\"
strF = Dir(strP & "IE-LS*.xlsm")
'Ziel-Arbeitsmappe mit diesem Vba-Code
Set wb1 = ThisWorkbook
'Zieltabelle
Set ws1 = wb1.Worksheets("Zieltabelle")
While strF  ""
'die zu öffnende Arbeitsmappe
Set wb2 = Workbooks.Open(strP & strF, False, True)
ii = ii + 1
'Unsinn, kann weg
'For Each C In Range("A4:DW5611")
Set ws2 = wb2.Worksheets("Sths")
Set rg2 = ws2.Rows("4:5611")
rg2.Copy
'usw.
strF = Dir()
Wend
End Sub
Ich helfe Dir gern weiter, aber mit einer kleinen Demodatei, in der ein paar Testdaten stehen, die übernommen werden sollten, macht das Ganze viel mehr Spaß.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Mehrere Mappen eines Ordner nacheinander verabeite
13.05.2015 09:22:11
Susanne
Hallo Luschi,
leider kann ich VBA nur mittels Aufzeichnung. Aber ich bin mit deinem Code klar gekommen und es läuft perfekt so wie ich es wollte.
Vielen herzlichen Dank und einen schönen Tag!
Liebe Grüße
Susanne

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige