Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Meine Schleife funktioniert nicht beim Auslesen

Meine Schleife funktioniert nicht beim Auslesen
04.10.2017 18:24:34
Chris
Hallo liebe VBA Freunde,
ich versuche hier Daten aus mehreren Dateien einzulesen und untereinander zuschreiben. Aktuell nimmt er 2 mal die Daten aus der 1. Datei, statt weiter zugehen in die 2. usw usw. Vielleicht sieht jemand von Euch meinen Fehler?
Vielen Dank für Eure Hilfe
'Prozedur

Public Sub Import()
'Deklaration Variablen
Dim strPfadDateiQuelle As String        'adresse zb. C:\Ordner\neuer....
Dim strPfadDateiZiel As String          'adresse zb. C:\Ordner\neuer....
Dim strNameDateiAktuell As String       'Dateiname zb. win.xlsx
Dim dateDatumQuelle As Date             'Variable zur Verwendung eines Datums
zb.: yyyy-mm-_dd
Dim lngZaehlerZeileQuelle As Long       'Zähler für Zeile
Dim lngZaehlerSpalteQuelle As Long      'zähler für spalte
Dim lngZaehlerZeileZiel As Long         'Zähler für Zeile
Dim lngZaehlerSpalteZiel As Long        'zähler für spalte
'Code
strPfadDateiQuelle = "O:\xxxxx\1st_XX\Team_XXX\02_Auswertung_XXX\"
strPfadDateiZiel = "H:\xxxx\Projekte\Bla-Übersicht\"
'Schleife Datei
lngZaehlerZeileZiel = 2
lngZaehlerSpalteZiel = 1
For dateDatumQuelle = DateSerial(2017, 1, 1) To DateSerial(2017, 12, 31) Step
1   'FOR000
strNameDateiAktuell = "AuswXXX_KW2017" & Format(Format(dateDatumQuelle,
"-ww"), "00") &  _"_Team_XXX" & ".xlsx"
Workbooks.Open strPfadDateiQuelle & strNameDateiAktuell
'Schleife Zeilen
lngZaehlerZeileQuelle = 2
lngZaehlerSpalteQuelle = 1
Do Until (Workbooks(strNameDateiAktuell).Worksheets("AuswMA").Cells( _
lngZaehlerZeileQuelle, lngZaehlerSpalteQuelle) = "") 'DO000
'Schleife Spalten
Do Until (Workbooks(strNameDateiAktuell).Worksheets("AuswMA").Cells(
_
lngZaehlerZeileQuelle, lngZaehlerSpalteQuelle) = "") 'DO001
ThisWorkbook.Worksheets("RohdatenXXX").Cells(lngZaehlerZeileZiel,
_
lngZaehlerSpalteZiel) = _
Workbooks(strNameDateiAktuell).Worksheets("AuswMA").Cells( _
lngZaehlerZeileQuelle, lngZaehlerSpalteQuelle)
lngZaehlerSpalteZiel = lngZaehlerSpalteZiel + 1
lngZaehlerSpalteQuelle = lngZaehlerSpalteQuelle + 1
Loop 'DO001
lngZaehlerZeileZiel = lngZaehlerZeileZiel + 1
lngZaehlerZeileQuelle = lngZaehlerZeileQuelle + 1
lngZaehlerSpalteZiel = 1
lngZaehlerSpalteQuelle = 1
Loop 'DO000
Workbooks(strNameDateiAktuell).Close
Next 'FOR000
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Meine Schleife funktioniert nicht beim Auslesen
04.10.2017 20:54:11
AlterDresdner
Hallo Chris,
ohne Deine Struktur so richtig nachvollziehen zu können:
mit dem Step 1 in For ... FOR000 schaltest Du nur um einen Tag weiter, das führt n-mal zum gleichen Dateinamen.
Vielleicht hilfts, das wünscht der ALteDresdner
AW: Meine Schleife funktioniert nicht beim Auslesen
05.10.2017 13:52:40
Chris
Danke erstmal für deine Antwort, wenn ich diese richtig verstehe meinst du ich müsste Step von 1 auf XX erhöhen? Die Herrausforderung ist, dass die Rohdaten-Dateien die ich importieren möchte immer wöchentlich erstellt werden, und er soll automatisch erkennen wie viele da sind und die vorhandenen alle importieren.
Hilft es dir wenn ich die Excel hochlade und du da den Code siehst (hier verschiebt sich ja doch alles etwas) oder meinst du ich schreib Ihn generell nicht nachvollziehbar?
Anzeige
AW: Meine Schleife funktioniert nicht beim Auslesen
05.10.2017 16:15:10
Chris
Entschuldigt bitte den Doppeltpost
Ich habe gerade herausgefunden warum er die Schleife abbricht (glaube ich jedenfalls)
Ich verwende die Zeile:
For dateDatumQuelle = DateSerial(2017, 1, 1) To DateSerial(2017, 52) Step 1 'FOR000
meine zu öffnenden Dateien lauten aber: AuswXXXX_KW2017-01_Team_Witt
mit DateSerial springt er nicht die Kalenderwochen Angabe KW2017-01 weiter
Richtung 02 etc bis 52. Ich kann aber auch nicht vorgeben 1 to 52, da die Dateien ja immer
erst im Laufe des Jahres in der Regel 2 Wochen nach Ablauf der Woche erstellt werden.
Kennt Ihr hier eine Alternative?
Anzeige
AW: Meine Schleife funktioniert nicht beim Auslesen
05.10.2017 19:17:44
ChrisL
Hi Chris
ungetestet...
i = 1
Do Until i > WorksheetFunction.WeekNum(Now(), 2) - 2
' hier Code
i = i + 1
Loop
cu
Chris
AW: Meine Schleife funktioniert nicht beim Auslesen
07.10.2017 11:12:15
Chris
Hallo Chris,
habe es jetzt wie folgt gelöst:
lngKWwoche = Format(Date, "WW")
For lngKWwoche = 1 To 39 Step 1 'FOR000
strNameDateiAktuell = "AuswCCSI_KW2017-" & Format(lngKWwoche, "00") & "_Team_Wittstock" & ".xlsx"
Allerdings habe ich jetzt das Problem, dass er mir immer eine Fehlermeldung gibt wenn eine KW nicht vorhanden ist. Mir wäre es lieb wenn er abbrechen würde sobald er bei der letzten KW-Datei angekommen ist und mir sagen würde Daten bis KWxx sind geladen
Anzeige
AW: Meine Schleife funktioniert nicht beim Auslesen
08.10.2017 09:58:55
ChrisL
Hi Chris
Prüfen ob Datei vorhanden...
If Len(Dir("C\Test.csv")) > 0 then
'weiter im Makro
Else
Exit Sub
End If

In Schleife...
For i = 1 To 52
If Len(Dir("C\Test" & Format(i, "00") & ".csv")) > 0 then
'weiter im Makro
Else
Exit Sub
End If
Next i
cu
Chris
AW: Meine Schleife funktioniert nicht beim Auslesen
10.10.2017 12:26:08
Chris
Vielen Dank ChrisL, es funktioniert :)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige