Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: >2 Bereiche ansprechen

VBA: >2 Bereiche ansprechen
10.11.2006 15:22:16
Chris
Hi Leute,
Hab ein kleines Problem! Hab unter "Einfügen-Namen-definieren..." mehrere Bereiche in einem Tabellenblatt kreiert! Jetzt wollte ich diese in VBA bzgl bedingter Formatierung ansprechen! Das klappt bei zwei Bereichen, aber sobald ein driter (4.,5,...) hinzukommt, gehts leider nicht mehr! Muss ich da im Code was umstellen, um den erweitern zu können?
Hab mal einen Auszug des Codes angehängt mit zwei Bereichen (A,B)! Die anderen Bereiche wären C, D, E usw.!
Wäre nett, wenn mir jemand helfen könnte!
Danke
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Application.Union(Range("A"), Range("B"))
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
Select Case (.Value)
Case "1"
.Interior.ColorIndex = 16
.Font.ColorIndex = 16
Case "2"
.Interior.ColorIndex = 29
.Font.ColorIndex = 29
.
.
.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: >2 Bereiche ansprechen
10.11.2006 16:17:37
Beni
Hallo Chris,
meist Du so?
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Application.Union(Range("Bereich1"), Range("Bereich2"), _
Range("Bereich3"), Range("Bereich4"), Range("Bereich5"))
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
Select Case (.Value)
Case "1"
.Interior.ColorIndex = 16
.Font.ColorIndex = 16
Case "2"
.Interior.ColorIndex = 29
.Font.ColorIndex = 29
End Select
End With
End If
Next
End Sub

Anzeige
AW: VBA: >2 Bereiche ansprechen
10.11.2006 17:06:58
Chris
Hi,
Ja genau so meinte ich das! Und da geht mein Macro eben nicht mehr! Kommt immer ein Laufzeitfehler! Das versteh ich nicht :-(
AW: VBA: >2 Bereiche ansprechen
10.11.2006 19:55:02
fcs
Hallo Chris,
die Namen deiner Bereiche sind zu kurz. Sie funktionieren in der Tabelle aber der Code-Compiler hat scheinbar Probleme wenn die Namen der Bereiche zu kurz sind.
Beispiel:
Die Sub RangeMArkiern funktioniert. Sub RangeMArkiern2 ergibt Fehlermeldung.

Sub RangeMArkiern()
Application.Union(Range("ABC"), Range("CDE"), Range("EFG")).Select
End Sub
Sub RangeMArkiern2()
Application.Union(Range("A"), Range("C"), Range("E")).Select
End Sub

Gruss
Franz
Anzeige
AW: VBA: >2 Bereiche ansprechen
10.11.2006 21:05:20
Stefan
Hallo zusammen,
nur noch mein Senf dazu:
Ich habe keine Probleme Bereiche mit Namen A, B, und D durch Union zu verbinden, aber ich kann noch nicht mal einen Bereich C definieren. Ich bekomme dabei immer eine Fehlermeldung, egal wie ich die Benennung versuche, selbst mit VBA.
Probiert mal bitte aus ob das nur mein persoenliches Problem ist...
Schoene Gruesse
Stefan
@ Stafan und Franz
10.11.2006 23:23:14
Chris
@ Stefan: Also ich hab keine Probleme den Bereich C zu definieren!
@ Franz: Super deine Lösung! Dachte nicht, dass es an so etwas liegen könnte! Da wär ich ja in Jahren nie drauf gekommen (auch wenn ich nicht verstehe wieso das so ist :-)!
DANKE!!!!
Anzeige
AW: Eigentlich sollte es naheliegend sein,...
11.11.2006 01:38:34
Luc:-?
...Chris,
das VBA Range("A") als Spalte A interpretieren will, die müsste dann aber Range("A:A") geschrieben wdn. Und schon hast du damit eine Syntaxverletzung.
Gruß Luc :-?
AW: VBA: >2 Bereiche ansprechen
11.11.2006 10:34:51
Erich
Hi Franz,
an der Länge liegt es nicht, sondern daran, dass die Excel-Spaltenbezeichnungen so nicht als Bereichsnamen verwendet werden können. (Vergeben kann man Namen wie "A" natürlich schon.)
Schau mal den Code in meinem anderen Beitrag hier im Thread.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Sagte ich doch, Erich - Gruß owT
11.11.2006 15:33:21
Luc:-?
:-?
AW: VBA: >2 Bereiche ansprechen
11.11.2006 10:29:10
Erich
Hallo Chris,
von der Verwendung von Spaltenbezeichnungen (A bis IV) als Bereichsnamen möchte ich dir dringend abraten.
IW bis IZ könntest du (wenn es denn unbedingt sein muss) verwenden,
Range("IW") ist eindeutig der mit "IW" benannte Bereich, keine Spalte.
Beispiel:
Sub RangeMark()
Application.Union(Range("ABC"), Range("DEF"), Range("IZ")).Select ' funzt
'  Application.Union(Range("ABC"), Range("DEF"), Range("IV")).Select ' funzt nicht - IV ist Spaltenbez.
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Danke
11.11.2006 13:17:13
Chris
Danke für eure Hilfe!
Bin ja gerade ganz am Anfang meiner Excel Erfahrunge, deshalb lassen einen solch kleine Problemchen schon echt verzweifeln!
Falls das noch jemand lesen sollte, viielleicht kann mir ja dann noch jemand verraten, wieso ich unter "Einfügen-Namen-definieren.." nur 5 Bereiche unter einem Namen zusammenfassen kann?
Gruß
AW: Danke
11.11.2006 15:04:50
Erich
Hallo Chris,
bei mir geht das auch mit mehr als 5 Bereichen.
Was passiert, wenn du das versuchst? Gibt es eine Fehlermeldung?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Danke
11.11.2006 15:10:34
fcs
Hallo Chris,
beim Festlegen eines Namens kann der Eintrag unter "Bezieht sich auf" ca.235 Zeichen lang sein (EXCEL97)
Das reicht für max. 30 verschiedene Bereiche bei einzelnen Zellen und sehr kurzem Tabellennamen. Typischerweise für 10 bis 15 Bereiche, je nach Länge des Tabellennamens und der Adressen der gewählten Bereiche
Wenn du lange Tabellennamen hast, dann geht die Zahl entsprechend runter, da der Tabellenname bei jedem Bereich mit eingetragen wird.
Gruss
Franz
Anzeige
So ist es (fast)! Eigentlich sollten es 255 Zchn..
11.11.2006 15:47:23
Luc:-?
...(zumindest ab MSO2000) sein, Franz,
weshalb es auch nicht ratsam ist, AddIns mit udFktt, die man auch im Namenswert verwenden will, da unterzubringen, wo Windows bzw Excel sie unterbringen wollen (hängt dann der ganze Pfad mit am FktNamen). Sowas für Excel immer unter ...Office\Makro\... speichern!
Grüße alle
Luc :-?
PS: Übrigens, bei der Namensvergabe nicht vergessen, das MSO2007 von MS auf 1000 (?) Spalten und 1 Mio Zeilen aufgebohrt wurde!
Wow,...
11.11.2006 23:47:40
Chris
Na dann bin ich ja jetzt, was diese Thema angeht wirklich fachmännisch beraten worden!
Dann vielleicht bis zum nächsten Problem :-)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige