Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For Each mit Union

For Each mit Union
22.07.2008 15:26:00
Martin
Hallo Leute,
beiße mir die Zähne aus.
Ich habe zwei Zellbereiche folgendermaßen zusammengefasst:
Set BEREICH1 = Range("K10:O12")
Set BEREICH2 = Range("G14:O16")
Set BIGRANGE = Union(BEREICH1, BEREICH2)
Nun möchte ich das in mehreren Sheets diese Bereich überprüft werden, in etwa so:
Dim zelle As Range
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
If wks.Range(AENDERUNG).Value = AENDERUNG_TEXT Then
For Each zelle In BIGRANGE
' dann der Code zum ausführen
Next zelle
End If
Next wks
AENDERUNG ist eine Range in dem der Text AENDERUNG_TEXT hinterlegt wird.
Das Problem ist das der Bezug zum momentanen wks fehlt und ich nicht weiß wie ich den
elegant hin bekomme.
Für Anregungen und Tipps wäre ich sehr dankbar.
mfg Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For Each mit Union
22.07.2008 15:45:00
Tom
Versuche so etwas:

For Each r In BIGRANGE
For Each c In r
Debug.Print c.Address
Next c
Next r


AW: For Each mit Union
22.07.2008 15:47:00
Rudi
Hallo,
ist AENDERUNG ein Name?
If wks.Range("AENDERUNG")...
Gruß
Rudi

AW: For Each mit Union
22.07.2008 21:56:00
Daniel
Hi
was mit RANGE bzw mit Bereichsnamen definert ist, bezieht sich immer auf ein bestimmtes Sheet und kann nicht allgemein für alle Sheets verwendet werden.
Wurde bei der Definition der Range-Variable kein Sheet referenziert, so bezieht sich die Range-Variable immer auf das Sheet, daß zum Zeitpunkt der Definition aktiv war.
sollte eine RANGE-Variable für mehrere Sheets verwendet werden, muss kann man sich mit einem kleinen Trick behelfen:

Dim zelle As Range
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
If wks.Range(Range(AENDERUNG).Address).Value = AENDERUNG_TEXT Then
For Each zelle In BIGRANGE
solltest du hier zelle verwenden, die sich aber auf das aktuellle Sheet wks bezieht, musst  _
du, es so schreiben:
wks.Range(Zelle.Address)
Next zelle
End If
Next wks


Gruß, Daniel

Anzeige
AW: For Each mit Union
23.07.2008 07:22:00
Martin
Hallo zusammen,
habe die Lösung gefunden. Da sich, wie Daniel schon schrieb, der Definierte Bereich immer auf das aktuelle Worksheet bezieht, habe ich meinen Code etwas umgebaut:
Dim wks As Worksheet
Dim zelle As Range
For Each wks In ActiveWorkbook.Worksheets
If wks.Range(AENDERUNG).Value = AENDERUNG_TEXT Then
Set BEREICH1 = wks.Range("K10:O12")
Set BEREICH2 = wks.Range("G14:O16")
Set BEREICH3 = wks.Range("G21:O27")
Set BIGRANGE = Union(BEREICH1, BEREICH2)
For Each zelle In BIGRANGE
.........

So funktioniert es prima.
mfg Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige