Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
for schleife mit zwei variablen
17.08.2017 14:18:34
Ahmet
Hallo zusammen,
ich bin gerade dabei eine Tabelle zu erstellen in der eine For schleife sinnvoll wäre.
Allerdings kriege ich diese nicht wirklich zum laufen:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("P5:P14").Interior.ColorIndex = 15
Range("P5:P14").Value = "Urlaub"
Range("P5:P14").Locked = True
Range("P16:P25").Interior.ColorIndex = 15
Range("P16:P25").Value = "Urlaub"
Range("P16:P25").Locked = True
Range("P27:P36").Interior.ColorIndex = 15
Range("P27:P36").Value = "Urlaub"
Range("P27:P36").Locked = True
..... der Code würde hier ewig weiter laufen (inkls. else Anweisung)
Mein Vorschlag sieht so aus:

Private Sub CheckBox1_Click()
dim x as integer
dim y as integer
If CheckBox1.Value = True Then
For x = 5 to 577 step 11
for y = 14 to 586 step 11
Range(Cells(16,x), Cells(16,y)).Interior.ColorIndex = 15
Range(Cells(16,x), Cells(16,y)).Value = "Urlaub"
Range(Cells(16,x), Cells(16,y)).Locked = True
next y
next x
end if
End Sub
ist bei Excel solch eine Schleife überhaupt möglich? Bei c++ kriege ich so etwas hin - nicht aber bei excel

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: for schleife mit zwei variablen
17.08.2017 14:46:10
Werner
Hallo Ahmet,
so?
Private Sub CheckBox1_Click()
dim x as long
dim y as long
y = 14
If CheckBox1.Value = True Then
For x = 5 to 577 step 11
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 15
Range(Cells(x, 16), Cells(y, 16)).Value = "Urlaub"
Range(Cells(x, 16), Cells(y, 16)).Locked = True
y = y + 11
next x
end if End Sub
Bei der Cells Schreibweise ist der erste Wert in der Klammer die Zeile und der zweite wert die Spalte.
Gruß Werner
Eine verschachtelte Schleife ist aber unnötig...
17.08.2017 14:50:06
Michael
Ahmet,
...aus meiner Sicht. Wenn ich Dich richtig interpretiert habe, sollte Dir auch das reichen (mit nur einer Schleife, und einer Laufvariablen):
Private Sub CheckBox1_Click()
Dim i&
If CheckBox1.Value = True Then
For i = 5 To 577 Step 11
With Range("P" & i & ":" & "P" & i + 9)
.Interior.Color.Index = 15
.Value = "Urlaub"
.Locked = True
End With
Next i
End If
End Sub
LG
Michael
Anzeige
AW: for schleife mit zwei variablen
17.08.2017 15:15:54
Ahmet
Hi,
klasse Vorschläge von euch beiden. Simpel aber gut.
Bei Michael seinem Code kommt leider ein Fehler:
.Interior.Color.Index = 15 --> Objekt erforderlich
Werner sein Code funktioniert soweit. Nur wenn ich mein Else Part mit einfüge bekomme ich den Fehler "Else ohne If Block" obwohl dieser Code vorher funktionierte.
Probiert habe ich das auf einer leeren Mappe.
Private Sub CheckBox3_Click()
Dim x As Long
Dim y As Long
y = 14
If CheckBox1.Value = True Then
For x = 5 To 577 Step 11
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 15
Range(Cells(x, 16), Cells(y, 16)).Value = "Urlaub"
Range(Cells(x, 16), Cells(y, 16)).Locked = True
y = y + 11
Else
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 40
Range(Cells(x, 16), Cells(y, 16)).ClearContents
Range(Cells(x, 16), Cells(y, 16)).Locked = False
Next x
End If
End Sub

Anzeige
Bei mir ist nur der Punkt in Color.Index zuviel oT
17.08.2017 15:45:02
Michael
AW: for schleife mit zwei variablen
17.08.2017 16:09:48
Werner
Hallo Ahmet,
Next x muss vor Else
Private Sub CheckBox3_Click()
Dim x As Long
Dim y As Long
y = 14
If CheckBox1.Value = True Then
For x = 5 To 577 Step 11
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 15
Range(Cells(x, 16), Cells(y, 16)).Value = "Urlaub"
Range(Cells(x, 16), Cells(y, 16)).Locked = True
y = y + 11
Next x
Else
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 40
Range(Cells(x, 16), Cells(y, 16)).ClearContents
Range(Cells(x, 16), Cells(y, 16)).Locked = False
End IfEnd Sub
Gruß Werner
AW: for schleife mit zwei variablen
17.08.2017 15:35:59
Ahmet
Nachtrag: so hat es nun funktioniert:
Private Sub CheckBox1_Click()
Dim x As Long
Dim y As Long
y = 14
For x = 5 To 577 Step 11
If CheckBox1.Value = True Then
Range(Cells(x, 6), Cells(y, 6)).Interior.ColorIndex = 15
Range(Cells(x, 6), Cells(y, 6)).Value = "Urlaub"
Range(Cells(x, 6), Cells(y, 6)).Locked = True
Else
Range(Cells(x, 6), Cells(y, 6)).Interior.ColorIndex = 40
Range(Cells(x, 6), Cells(y, 6)).ClearContents
Range(Cells(x, 6), Cells(y, 6)).Locked = False
End If
y = y + 11
Next x
End Sub

vielen dank euch beiden
Anzeige
Bitte, aber...
17.08.2017 16:02:06
Michael
Ahmet,
...so wie Du es jetzt hast, prüfst Du bei jedem Schleifendurchlauf ob die CheckBox1 WAHR ist:
For x = 5 To 577 Step 11
If CheckBox1.Value = True Then
Aber das musst Du doch nur einmal prüfen. Und die doppelte Zählvariable ist aus meiner Sicht immer noch nicht erforderlich. Ich würde so tun...
Sub CheckBox1_Click()
Dim x&, c&, v$, l As Boolean
With CheckBox1
c = IIf(.Value = True, 15, 40)
v = IIf(.Value = True, "Urlaub", vbNullString)
l = IIf(.Value = True, True, False)
End With
For x = 5 To 577 Step 11
With Range(Cells(x, 6), Cells(x + 9, 6))
.Interior.ColorIndex = c
.Value = v
.Locked = l
End With
Next x
End Sub
LG
Michael
Anzeige
AW: Bitte, aber...
17.08.2017 16:18:22
Werner
Hallo Ahmet,
sehe gerade, dass du im Else Zweig ja ebenfalls eine Schleife brauchst.
Private Sub CheckBox3_Click()
Dim x As Long
Dim y As Long
y = 14
If CheckBox1.Value = True Then
For x = 5 To 577 Step 11
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 15
Range(Cells(x, 16), Cells(y, 16)).Value = "Urlaub"
Range(Cells(x, 16), Cells(y, 16)).Locked = True
y = y + 11
Next x
Else
Range(Cells(x, 16), Cells(y, 16)).Interior.ColorIndex = 40
Range(Cells(x, 16), Cells(y, 16)).ClearContents
Range(Cells(x, 16), Cells(y, 16)).Locked = False
End IfEnd Sub
Wobei der Code von Michael natürlich eleganter ist und auf die zweite Zählvariable verzichtet.
Gruß Werner
Anzeige
Sry Michael, im falschen Zweig. o.w.T.
17.08.2017 16:19:14
Werner
Kein Problem! LG und owT
17.08.2017 16:25:18
Michael

138 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige