Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

erste Ausführung einer Schlaufe mit Case abfangen

Forumthread: erste Ausführung einer Schlaufe mit Case abfangen

erste Ausführung einer Schlaufe mit Case abfangen
14.06.2007 12:41:00
Peter
Liebes Forum
Mit nachstehendem Code öffne ich in einem Verzeichnis eine Datei nach der anderen und kopiere verschiedene Bereiche in eine Zieldatei.
Dabei möchte ich bei den ersten Daten immer auch die Zeile 1 (Kopfzeile) kopieren; bei den anderen dann nicht mehr. Ich habe dies versucht, mit der Select Case zu bewerkstelligen. Irgend etwas ist falsch, es wird immer nur der Kopierbefehl bei CaseElse ausgeführt. Wo ist das Problem?
Herzlichen Dank für eine Rückmeldung!
Peter
'Dateien nacheinander öffnen und Daten übertragen
For i = 1 To lngZ
Set WB = Workbooks.Open(Filename:=strVerz & ShTab.Cells(i, 1))
'letzte beschriebene Zeile in Spalte B ermitteln:
lr = WB.Worksheets(TabName).Cells(Rows.Count, 2).End(xlUp).Row 'Spalte B wird abgefragt
'Wenn Spalte nicht leer dann...
If lr > 0 Then
'...Wert in Blatt [TabZiel] eintragen
lrZiel = WBAktiv.Sheets(TabZiel).Cells(Rows.Count, 1).End(xlUp).Row
Select Case i
Case i = 1
WB.Worksheets(TabName).Rows("1:" & lr).Copy Destination:=WBAktiv.Sheets(TabZiel).Cells(Rows.Count, 1).End(xlUp).Row
Case Else
WB.Worksheets(TabName).Rows("2:" & lr).Copy Destination:=WBAktiv.Sheets(TabZiel).Rows(lrZiel)
End Select
End If
'Mappe (ohne speichern) schließen
WB.Close False
Next i

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste Ausführung einer Schlaufe mit Case abfangen
14.06.2007 12:48:31
Andi
Hi,
die korrekte Syntax ist
Case 1
und nicht
Case i = 1
Dass es sich um die Variable i handelt, hast Du ja schon mit
Select Case i
festgelegt.
Schönen Gruß,
Andi

AW: erste Ausführung einer Schlaufe mit Case abfangen
14.06.2007 13:17:13
Peter
Hallo Andi
Vielen Dank - wäre zwar logisch, war mir jedoch nicht bewusst.
Peter

Anzeige
Gern geschehen... (ot)
14.06.2007 13:23:00
Andi
.

AW: erste Ausführung einer Schlaufe mit Case abfangen
15.06.2007 03:15:32
Daniel
Hallo
warum so kompliziert? Es geht auch ohne select case:

dim StartZe as integer
StartZe = 1
For i = 1 To lngZ
Set WB = Workbooks.Open(Filename:=strVerz & ShTab.Cells(i, 1))
lr = WB.Worksheets(TabName).Cells(Rows.Count, 2).End(xlUp).Row 'Spalte B wird abgefragt
If lr > 0 Then
lrZiel = WBAktiv.Sheets(TabZiel).Cells(Rows.Count, 1).End(xlUp).Row
WB.Worksheets(TabName).Rows(StartZe & ":" & lr).Copy Destination:=WBAktiv. _
Sheets(TabZiel).Cells(Rows.Count, 1).End(xlUp).Row
StartZe = 2
End If
WB.Close False
Next i


beim ersten durchlauf ist StartZe = 1, bei jedem weiteren Umlauf dann 2
Gruß. Daniel

Anzeige
AW: erste Ausführung einer Schlaufe mit Case abfangen
15.06.2007 08:52:14
Peter
Hallo Daniel
Vielen Dank für diesen Lösung. Man muss halt mit den Mitteln arbeiten, die man (mehr oder weniger) kennt ...
Gruss, Peter

AW: erste Ausführung einer Schlaufe mit Case abfangen
15.06.2007 22:35:00
Daniel
Eigentlich mußst du für diese Lösung doch viel weniger wissen, als für die erste ;-)

Forumthreads zu verwandten Themen

Anzeige
Anzeige