Microsoft Excel

Herbers Excel/VBA-Archiv

Schleife über Ranges

Betrifft: Schleife über Ranges von: Franz W.
Geschrieben am: 26.09.2020 13:59:39

Hallo Fachleute,

ich möchte mehrere Zellen mit der gleichen Formatierung versehen. Aber alle meine verschiedenen Versuche scheitern.

Zum Beispiel dieser Versuch:

Dim ReRng(1 To 10) As Range
Dim z As Byte
Set ReRng1 = Range("Re_Nummer")
Set ReRng2 = Range("Re_Datum")
Set ReRng3 = Range("Re_Name")
Set ReRng4 = Range("Re_Strasse")
Set ReRng5 = Range("Re_PlzOrt")
Set ReRng6 = Range("Re_Anrede")
Set ReRng7 = Range("Re_Kurs")
Set ReRng8 = Range("Re_AnfEndDatum")
Set ReRng9 = Range("Re_AnzEinheiten")
Set ReRng10 = Range("Re_Gebuehr")

For z = 1 To 10
With ReRng & z
.Font.Size = 10
.Font.Italic = True
.Font.ColorIndex = 16
End With
Next

Hier bekomme ich schon bei "Set ReRng1 =" die Fehlermeldung: "Zuweisung zu einer Konstanten nicht zulässig"

Mache ich's aber so:
Dim ReRng1 As Range, ReRng2 As Range, ReRng3 As Range, ReRng4 As Range, ReRng5 As Range, ReRng6 As Range, ReRng7 As Range, ReRng8 As Range, ReRng9 As Range, ReRng10 As Range

kommt bei der With-Anweisung die Meldung: "Variable nicht definiert"

Könnt ihr mir bitte helfen, was ich hier machen muss.

Danke schonmal und Grüße
Franz

Betrifft: AW: Schleife über Ranges
von: Hajo_Zi
Geschrieben am: 26.09.2020 14:07:42

Hallo Franz,

benutze ein Array, das ist einfacher.

GrußformelHomepage

Betrifft: AW: Schleife über Ranges
von: Franz W.
Geschrieben am: 26.09.2020 14:09:24

Hallo Hajo,

kannst du mir bitte damit helfen, das kenne ich noch nicht.

Grüße
Franz

Betrifft: AW: Schleife über Ranges
von: Hajo_Zi
Geschrieben am: 26.09.2020 14:14:48

im ReRng(1 To 10) As Range
Dim z As Byte
Set ReRng1 = "Re_Nummer"
Set ReRng2 ="Re_Datum"
ARrSt(0) = "Re_Name"
ARrSt(1) = "Re_Strasse"
ARrSt(2) = "Re_PlzOrt"
ARrSt(3)= "Re_Anrede"
ARrSt(4) = "Re_Kurs"
ARrSt(5) = "Re_AnfEndDatum"
ARrSt(6) = "Re_AnzEinheiten"
ARrSt(7) = Range("Re_Gebuehr")

For z = 1 To 10
With Range(ARrSt(Z))

Gruß Hajo

Betrifft: AW: Schleife über Ranges
von: Sigi.21
Geschrieben am: 26.09.2020 14:23:59

Hallo Franz,

so sollte es gehen:

Dim ReRng(1 To 10) As Range
Dim z As Byte

Set ReRng(1) = Range("Re_Nummer")
Set ReRng(2) = Range("Re_Datum")
Set ReRng(3) = Range("Re_Name")
Set ReRng(4) = Range("Re_Strasse")
Set ReRng(5) = Range("Re_PlzOrt")
Set ReRng(6) = Range("Re_Anrede")
Set ReRng(7) = Range("Re_Kurs")
Set ReRng(8) = Range("Re_AnfEndDatum")
Set ReRng(9) = Range("Re_AnzEinheiten")
Set ReRng(10) = Range("Re_Gebuehr")

For z = 1 To 10
With ReRng(z)
.Font.Size = 10
.Font.Italic = True
.Font.ColorIndex = 16
End With
Next

Sigi

Betrifft: AW: Schleife über Ranges
von: Franz W.
Geschrieben am: 26.09.2020 14:35:04

Super, danke, ihr beiden! Das isses! Und das durchschau ich auch...

Und wenn ich's genau anschau, eigentlich fast klar :-))

Danke und Grüße
Franz

Betrifft: AW: Schleife über Ranges
von: onur
Geschrieben am: 26.09.2020 14:27:57

NICHT
Set ReRng1 = Range("Re_Nummer")

sondern
Set ReRng(1) = Range("Re_Nummer")

usw usw

und
For z = 1 To 10
With ReRng(z)
...
...