Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If- Schleife mit mehreren Anweisungen

Forumthread: If- Schleife mit mehreren Anweisungen

If- Schleife mit mehreren Anweisungen
29.09.2003 14:06:10
Thorsten
Hi,
habe folgendes Problem...
aus einem Excelsheet sollen Daten gefiltert werden. Kriterium ist hier das Jahr in der Spalte N (beginnend ab zeile 13)

Die einzelnen Zeilen (= Datensatz ) soll je nachdem´, welches Jahr nun in der Spalte steht, auf andere Tabellenblätter ( jeweils 1 pro Jahr) verteil werden.

Dafür habe ich folgendes Makro geschrieben...

Sub Thorsten()
Dim i As Integer
Dim j As Integer

j = 17 'Zeile, mit der der Eintrag in Tabelle2 beginnen soll

For i = 13 To 112
If Worksheets("Analyse").Cells(i, 14).Value = "00" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("00").Rows(j)
 'das jahr 2000
 
ElseIf Worksheets("Analyse").Cells(i, 14).Value = "01" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("01").Rows(j)
 'das Jahr 2001
 
ElseIf Worksheets("Analyse").Cells(i, 14).Value = "02" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("02").Rows(j)
 'das Jahr 2002
ElseIf Worksheets("Analyse").Cells(i, 14).Value = "03" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("03").Rows(j)
 'das Jahr 2003
ElseIf Worksheets("Analyse").Cells(i, 14).Value = "04" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("04").Rows(j)
 'das Jahr 2004
ElseIf Worksheets("Analyse").Cells(i, 14).Value = "05" Then
 Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("05").Rows(j)
 'das Jahr 2005
 
j = j + 1
End If
Next i
End Sub
     

Nur kopiert das Makro leider nur für jedes Jahr einen Datensatz und nciht alle.

Woran liegt das und wie müßte ich das Makro verändern??
Bin für jede Hilfe dankbar
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If- Schleife mit mehreren Anweisungen
29.09.2003 14:36:08
xXx
Hallo,
erstens würde ich das ganze in eine Select-Case Bedingung einbauen anstatt mit If-ElseIf zu arbeiten. Mit deiner Var. j erzeugst du leere Zeilen in deinen Blättern, da sie nach jedem Eintrag erhöht wird.

For i = 13 To 112
Select Case Worksheets("Analyse").Cells(i, 14).Value
Case "00"
j=Worksheets("00").cells(65536,1).end(xlup).row+1
Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("00").Rows(j)
'das jahr 2000

Case "01"
j=Worksheets("01").cells(65536,1).end(xlup).row+1
Worksheets("Analyse").Rows(i).Copy Destination:=Worksheets("01").Rows(j)
'das Jahr 2001

'und so weiter

End Select
Next i

Gruß aus'm Pott
Udo
http://www.excelerator.de

P.S. Das Forum lebt auch von den Rückmeldungen der Frager an die Antworter!
Anzeige
Danke
29.09.2003 14:54:13
Thorsten
Hi,

Udo, die Methode mit Select Case ist klasse, meine nächste Frage wär nämlich gewesen, wie ich die Leerzeilen loswerde, die ich über j erzeuge.
Super, gleich den nächsten Gedanken mit aufgenommen, so muss dat.
Gruß aus'm Pott zurück innen Pott.

Thorsten
Danke
29.09.2003 15:03:26
Thorsten
Hi,

Udo, die Methode mit Select Case ist klasse, meine nächste Frage wär nämlich gewesen, wie ich die Leerzeilen loswerde, die ich über j erzeuge.
Super, gleich den nächsten Gedanken mit aufgenommen, so muss dat.
Gruß aus'm Pott zurück innen Pott.

Thorsten
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige