Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Tabellenbereich in einer Schleife ansprechen

Forumthread: Tabellenbereich in einer Schleife ansprechen

Tabellenbereich in einer Schleife ansprechen
25.07.2025 20:22:45
Siegfried
Hallo zusammen,
ich habe für mehrere Tabellenbereiche einen Namen vergeben und führe dann eine Aktion aus.

Range("NrTN_Mod0_Rde1").ClearContents
Range("NrTN_Mod0_Rde2").ClearContents
Range("NrTN_Mod0_Rde3").ClearContents
Range("NrTN_Mod0_Rde4").ClearContents
Range("NrTN_Mod0_Rde5").ClearContents
Range("NrTN_Mod0_Rde6").ClearContents
Range("NrTN_Mod0_Rde7").ClearContents
.
.
.

Range("NrTN_Mod7_Rde1").ClearContents
Range("NrTN_Mod7_Rde2").ClearContents
Range("NrTN_Mod7_Rde3").ClearContents
Range("NrTN_Mod7_Rde4").ClearContents
Range("NrTN_Mod7_Rde5").ClearContents
Range("NrTN_Mod7_Rde6").ClearContents
Range("NrTN_Mod7_Rde7").ClearContents

Ich möchte die Aktion aber platzsparend über eine Schleife ausführen lassen.
Wie muss ich es anstellen, dass ich die Schleifenwerte einbaue?

For n1 = 0 To Range("Maximum.Runden").Value
For n2 = 1 To Range("Maximum.Runden").Value
? Range("NrTN_Mod & n1 _Rde & n2 ").ClearContents
Next n2
Next n1

Gruß
Siegfried
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenbereich in einer Schleife ansprechen
25.07.2025 20:36:34
Yal
Hallo Siegfried,

ganz einfach: die feste Teile von einer Zeichenkette werden zwischen "" ausgeführt, die Variablen einfach als Variablename und alle mit einem & verkettet.

Sieht dann so aus:
Range("NrTN_Mod" & n1 & "_Rde" & n2).ClearContents

Schon das Verwenden der "Code"-Formatierung (Siehe Schalter über das Beitragsfenster) gib Dir im Vorschau ein Bild, ob es passt oder nicht.

VG
Yal
Anzeige
AW: Tabellenbereich in einer Schleife ansprechen
25.07.2025 20:47:02
xlKing
Falls es sich um einen zusammenhängenden Bereich von 0,1 bis 7,7 handelt, kannst du dir die Schleife auch sparen. Einfach diese Zeile ausführen:

Range("NrTN_Mod0_Rde1:NrTN_Mod7_Rde7").ClearContents


Gruß Mr. K.
AW: Tabellenbereich in einer Schleife ansprechen
25.07.2025 21:44:41
Siegfried
Hi Yal,

ich habe Deinen Vorschlag mit Range(....)Select getestet,
bekomme aber die Meldung, dass die SelectMethode nicht ausgeführt werden kann

Vielleicht hätte ich erwähnen müssen, dass die Schleife in Tabelle6 gestartet wird,
die Aktion aber in Tabelle5 ausgeführt wird.
Allerdings erhalte ich die gleiche Medung, wenn ich mit Tabelle5.Range(...).Select arbeite

Hi Daniel,

mit Deinem Vorschlag erhalte ich auch die gleiche Meldung,
auch wenn ich thisWoorkbook durch Tabelle5 ersetze.

Gruß
Siegfried
Anzeige
AW: Tabellenbereich in einer Schleife ansprechen
26.07.2025 08:29:54
schauan
Hallo Siegfried,

1) auf einem anderen Blatt kann man nicht selektieren, lediglich mit einem Trick könnte man die selektierte Zelle ändern

2) wenn Deine Namen in der Mappe eindeutig sind, dann muss man nicht mit den Blattnamen arbeiten. Ohne Select hätte der Code funktioniert, egal, welches Blatt gerade aktiv ist. Mache dazu folgendes Experiment:

Erstelle eine Mappe mit zwei Blättern, Tabelle1 und Tabelle2
Benenne eine Zelle auf Tabelle1 z.B. "Gugelhupf"
Kopiere Tabelle1
Du hast nun 3 Blätter.
Nimm diesen Code:
Sub test()

MsgBox Range("Gugelhupf").Parent.Name
End Sub

Wechsle auf Tabelle2
Im Ergebnis siehst Du den Blattnamen, auf welchem die Zelle angesprochen wird
Wechsle auf die Kopie, dürfte Tabelle1 (2) heißen. Das Blatt erhält ebenfalls eine Zelle "Gugelhupf"
Führe den Code erneut aus.

Schaue im Namensmanager, wir die Bereiche beschrieben sind.





Anzeige
AW: Tabellenbereich in einer Schleife ansprechen
26.07.2025 13:01:46
Siegfried
Hi Schauan

vielen Dank, Dein Hinweis mit selektieren war entscheidend

und ebenfalls vielen Dank Yal und Daniel.

Gruß
Siegfried
AW: Tabellenbereich in einer Schleife ansprechen
25.07.2025 20:42:13
daniel
Hi
dim nme as name

for each nme in thisworkbook.names
if nme.Name like "NrTN_Mod*" Then Range(nme.Name).ClearContents
Next

Gruß Daniel

Anzeige
AW: Tabellenbereiche ohne Schleife ansprechen
25.07.2025 22:29:08
GerdL
Moin Siegfried!
Sub Unit()


With Tabelle5
Union(.Range("NrTN_Mod0_Rde1"), .Range("NrTN_Mod0_Rde2"), .Range("NrTN_Mod0_Rde3"), _
.Range("NrTN_Mod0_Rde4"), .Range("NrTN_Mod0_Rde5"), .Range("NrTN_Mod0_Rde6"), _
.Range("NrTN_Mod0_Rde7"), .Range("NrTN_Mod7_Rde1"), .Range("NrTN_Mod7_Rde2"), _
.Range("NrTN_Mod7_Rde3"), .Range("NrTN_Mod7_Rde4"), .Range("NrTN_Mod7_Rde5"), _
.Range("NrTN_Mod7_Rde6"), .Range("NrTN_Mod7_Rde7")).ClearContents
End With

End Sub

Gruß Gerd
Anzeige
Ranges
26.07.2025 09:02:35
RPP63
Moin Gerd!
Du hast die Punkte zwischen Range_Mod0 und Range_Mod7 übersehen! ;)
Es handelt sich folglich um 8 (0 to 7) * 7 (1 to 7) = 56 Ranges.
Daher der Wunsch nach einer Schleife.

Gruß Ralf
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18