Wieso funktioniert Makro nicht?
24.06.2009 08:34:00
Jan
Hallo Matthias
Vielen Dank für deine Antwort..mit dem wäre ich auch sehr zufrieden..:)
Habe es mal zu meinem Vorteil umgebaut, und habe nun folgendes Problem:
Hier das Makro:
Option Explicit
Sub CopyZahl()
Dim rng As Range, loletzte As Long, internerCounter As Long
Worksheets("VBA").Range("A2:A5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("B5:B5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("B1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(loletzte, 1) = rng
End If
Next
Worksheets("VBA").Range("C2:C5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("G5:G5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("D1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(loletzte, 3) = rng
End If
Next
Worksheets("VBA").Range("E2:E5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("L5:L5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("F1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(loletzte, 5) = rng
End If
Next
Worksheets("VBA").Range("G2:G5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("Q5:Q5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("H1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 7).End(xlUp).Row + 1
Cells(loletzte, 7) = rng
End If
Next
Worksheets("VBA").Range("I2:I5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("V5:V5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("J1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(loletzte, 9) = rng
End If
Next
Worksheets("VBA").Range("K2:K5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("AA5:AA5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("L1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 11).End(xlUp).Row + 1
Cells(loletzte, 11) = rng
End If
Next
Worksheets("VBA").Range("M2:M5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("AF5:AF5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("N1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(loletzte, 13) = rng
End If
Next
Worksheets("VBA").Range("O2:O5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("AK5:AK5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("P1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 15).End(xlUp).Row + 1
Cells(loletzte, 15) = rng
End If
Next
Worksheets("VBA").Range("Q2:Q5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("AP5:AP5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("R1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 17).End(xlUp).Row + 1
Cells(loletzte, 17) = rng
End If
Next
Worksheets("VBA").Range("S2:S5000").ClearContents 'Bereich leeren falls gefüllt
For Each rng In Worksheets("PivotTable").Range("AU5:AU5000") 'Bereich für Schleife
If IsNumeric(rng) Then 'Abfrage ob Zahl
internerCounter = internerCounter + 1 'Zählen wie oft Zahl
If internerCounter > Worksheets("VBA").Range("T1").Value + 1 Then Exit For 'nur die ersten 5 _
Zahlen listen
loletzte = Cells(Rows.Count, 19).End(xlUp).Row + 1
Cells(loletzte, 19) = rng
End If
Next
End Sub
Wenn ich jede next-Schleife alleine starte, dann funktionieren die Makros einwandfrei..
Wenn ich aber alles zusammenhänge und wie im oberen Makro dargestellt starte, läuft nur die erste next-Schleife ab..
Wo ist hier das Problem?
Vielen Dank für die Hilfe!
Gruss Jan