FOR -IF nicht korrekt
22.02.2004 13:21:52
Klaus
Ich habe folgendes Problem:
Mein Makro soll die Daten in der Liste in der Spalte A nach Abkürzungen(Buchstaben und Zahlen) sortieren und ein neues Tabellenblatt mit dem jeweiligen Abkürzungen-Namen erstellen.
Um keine doppelten Tabellen zu erhalten soll er vorher prüfen, ob das Blatt
schon existiert. Allerdings funktioniert das Makro nicht richtig - es erstellt
trotzdem manchmal doppelte Blätter.
Beim durchlaufen der Schleife FOR (I) liest er zwar den richtigen Tabellennamen
aus. Aber führt die IF_Bedingung dann nicht aus.
Wäre sehr dankbar für eine Lösung oder Hinweis.
Sub Sortieren()
Dim X As String
Dim VG As String
' Anfang
Set ANFANG = ActiveCell
Sheets("Liste").Select
VG = Range(ANFANG.Offset(4, 0), ANFANG.Offset(4, 0)).Value
X = Range(ANFANG.Offset(3, 0), ANFANG.Offset(3, 0)).Value
B = 1
Range(ANFANG.Offset(3, 0), ANFANG.Offset(3, 0)).Select
z = ActiveCell.Row()
letztezeile = Sheets("Liste").UsedRange.SpecialCells(xlCellTypeLastCell).Row
MsgBox letztezeile
R = letztezeile - 2
MsgBox R
' Zeilenschleife
For z = 4 To R
If X <> VG Then
' Arbeitsblattschleife
I = 0
For I = 1 To Worksheets.Count
MsgBox Worksheets(I).Name
If Worksheets(I).Name = X Then GoTo 100
Next I
Sheets("Liste").Select
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(X).Delete
Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=X
Range("B3").CurrentRegion.Copy
Sheets.Add.Name = X
Sheets(X).Move After:=Sheets(4 + B)
B = B + 1
Cells.Select
ActiveSheet.Paste
With Selection.Font
.Name = "Arial"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
End With
Application.CutCopyMode = False
Range("A1").CurrentRegion.Select
Selection.RowHeight = 16
Columns("B:C").Select
Range("B3").Activate
Selection.ColumnWidth = 9
Range("C12").Select
Sheets("Liste").Activate
ActiveSheet.AutoFilterMode = False
100 Sheets("Liste").Select
End If
X = VG
VG = Range("a" & z + 1).Value
Next z
End Sub