Problem mit einer Schleife

Hallo… :smile:

Ich wollte ein Makro basteln das mir alle Zahlen (bis 4 Stellen) auflistet aber nur bis 6 also nicht wie normal auf 10 zählen.

Beispiel:

1124
1125
1126
1131
1132

Ich hoffe es ist klar wie gezählt werden soll…

Dazu habe ich dann folgenden Quellcode gebastelt welcher aber einen kleinen Fehler hat. Und zwar wir ab der zweiten Stelle (von rechts) die letzte Zahl (6) nur einmal angezeigt anstatt die ganzen 6 mal…

Sub auflisten()

Dim zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahl7, zahl8, zelle

zahl1 = 1
zahl2 = 1
zahl3 = 1
zahl4 = 1
zahl5 = 1
zahl6 = 1
zahl7 = 1
zahl8 = 1

zelle = 1

While zahl1

hi,
ich hab was ähnliches auch schon verwendet und folgendermassen germacht:

Sub Aufzaehlung()
Dim zahl(5999)
Dim zaehler, index As Integer
index = 0
For zaehler = 1 To 9999
zahl(index) = zaehler
index = index + 1
If CStr(Right(zaehler, 1)) = „6“ Then
zaehler = zaehler + 4
If zaehler > 9999 Then Exit For
End If
Next zaehler
index = index - 1
End Sub

Die Zahlen sind jetzt im Array Zahl(0…5999) gespeichert, du kannst sie danach in die zellen schreiben oder auch einfach in der schleife direkt in die zellen schreiben, dann kannst du dir das array sparen :wink:

gruss
harry

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

nochmal hi,

ok, probiers damit:

Sub Aufzaehlung()
Dim zaehler, zelle as integer
zelle = 1
For zaehler = 1 To 9999
Range(„A“ & cstr(zelle)) = zaehler
zelle = zelle + 1
If Right(CStr(zaehler), 1) = „6“ Then
zaehler = zaehler + 4
If zaehler > 9999 Then Exit For
End If
Next zaehler
End Sub

ist im prinzip das gleiche, nur dass die werte direkt in die tabelle geschrieben werden.
zur erklärung:
die prozedur macht nichts anderes, als in einer schleife von 1 9999 zu zählen und immer, wenn der wert auf „6“ endet, direkt 4 zu addieren um eben 7, 8, 9 und 0 auszulassen.

Hier eine kurze Version:

dim intCount1 as integer
dim intCounter as integer

for intCounter = 0 to 999
for intCount1 = 0 to 6
Range(„A“ & str(intCounter)) = trim(str(intCounter)) & trim(str(intCount))
next intCount1
next intCounter