Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
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
Zeilen einfärben
25.01.2013 14:44:28
reiner
Hallo Leute,
aufgrund einer Selektion werden die Zeilenadressen diverser Zeilen in eine Variable eingelesen und entsprechend eingefärbt. Allerdings gibt es eine interne Begrenzung die bei Zeilenadressen im 3-stelligen Zeilenbereich max. 35 Zeilen einfärben kann.
Intersect(Range(MarkierteZeilen).EntireRow, Range("A:H")).Select
Kennt jemand eine Möglichkeit mehr als 35 Zeilen (bis ca. 400 zeilen) gleichzeitig einzufärben
mfg
reiner

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen einfärben
25.01.2013 15:03:47
Daniel
HI
das liegt daran, daß der Addressstring der Range (MarkierteZeilen) nicht länger als 256 Zeichen sein darf.
du solltest "MarkierteZeilen" nicht als String definieren, sondern direkt als Zellobjekt, da geht dann etwas mehr.
Gruß Daniel

AW: Zeilen einfärben
25.01.2013 18:37:48
reiner
hallo,
"...du solltest "MarkierteZeilen" nicht als String definieren, sondern direkt als Zellobjekt, da geht dann etwas mehr" wieviel mehr?
wenn der Addressstring der Range (MarkierteZeilen) nicht länger als 256 Zeichen sein darf, dann werde ich die Variable mit dem langen "Addressstring" auf mehrere Variablen aufteilen und diese dann in einer Schleife nacheinander abarbeiten lassen.
Oder hast du einen besseren Vorschlag?
mfg
reiner

Anzeige
AW: Zeilen einfärben
26.01.2013 09:53:32
Hajo_Zi
Hallo reiner,
mache das was vorgeschlagen wurde.
sondern direkt als Zellobjekt

Definiere die Variable als Range vermute ich.

AW: Zeilen einfärben
26.01.2013 15:23:31
reiner
hallo Hajo,
habe ich getestet, bringt aber keinen Erfolg
mfg
reiner

AW: Zeilen einfärben
26.01.2013 17:59:25
Jürgen
Hallo Reiner,
gemeint war wohl etwas wie
Sub Markieren()
Dim Zielbereich As Range
Dim n As Integer
Set Zielbereich = Range("a1")
For n = 1 To 400
Set Zielbereich = Union(Zielbereich, Range("a1").Offset(n, n))
Next
Zielbereich.Select
End Sub
Der Code läuft bei mir (Excel 2010) durch.
Gruß, Jürgen

Anzeige
AW: Zeilen einfärben
27.01.2013 17:51:32
reiner
hallo Jürgen,
dein Tipp funktioniert unter der Voraussetzung dass die Zeilen nacheinader einzufärben sind, bei mir liegen aber immer mal wieder Zeilen dazwischen die nicht eingefärbt werden sollen. (hatte ich allerdings auch nicht darauf hingewiesen, Entschuldigung.
Die Zeilenadressen liegen in einem Adressstring vor; das Problem besteht darin, dass der Adressstring max. 256 Zeichen enthalten kann, das sind dann je nach Zeilennummern zwischen 30 und vielleicht 45 Zeilen.
Wenn ich jedoch ca. 100 Zeilen einfärben will klappt das nicht mehr und da liegt mein Problem.
mfg
reiner

Anzeige
AW: Zeilen einfärben
28.01.2013 11:17:31
Daniel
Hi
probiers mal so:
der Code färbt die ersten 10 Spalten einer Zeile, wenn deine Bedinugng erfüllt ist:
dim Zielbereich as Range
dim n as long
for n = 1 to 400
if Deine Bedingung fürs Färben Then
if Zielbereich is Nothing then
set Zielbereich  = Cells(n, 1).Resize(1, 10)
else
Set Zielbereich = Union(Zielbereich, Cells(n, 1).Resize(1, 10))
end if
end if
Next
in eine Rangevariable direkt kann man wesentlich mehr nicht zusammenhängende Zellbereiche packen (8192), als über den Addressstring.
etwas aufwendig wirds, weil man die erste Zelle der Variablen direkt zuweisen muss und dann die weiteren dann mit der UNION-Methode hinzupacken muss.
einfacher wäre in diesem Fall wahrscheinlich, mit dem Autofilter alle nicht zu färbenden Zellen auszublenden und dann den ganzen Bereich zu färben.
In gefilterten Tabellen werden nur die sichtbaren Zeilen bearbeitet, das funktionert auch unter VBA.
Gruß Daniel

Anzeige
AW: Zeilen einfärben
28.01.2013 13:25:00
reiner
hallo daniel,
ich danke dir für den Vorschlag aber er hilft mir auch nicht weiter.
Die Zeilennummern sind in einem Adressstring zusammengefasst; die Zeilen sollen nacheinander oder mit Abstand zueinander eingefärbt werden.
Da ich mit der bisherigen Vorgehensweise nicht weiterkomme verfolge ich nun eine andere Strategie und speichere zunächst den Adressstring mit =< 256 Zeichen jeweils in einer Variablen (wenn der Adressstring länger als 256 Zeichen wird, erfolgt die Speicherung in einer weiteren Variablen) welche ich nach dem Einlesen der Zeilenadressen nacheinander aufrufe und die Zeilen einfärbe.
Hierbei ergeben sich zwar weitere Probleme die ich, wenn ich selbst keine Lösung finden sollte, hier im Forum zur Diskussion stellen werde.
mfg
reiner

Anzeige
AW: Zeilen einfärben
28.01.2013 14:38:09
Daniel
Hi
wenn der Addressstring vorliegt und länger als 256 Zeichen ist, kannst du auch so vorgehen:
Dim AddString as String
dim TeilString as String
AddString = "...mehr als 256 Zeichen Addresstring ..."
for each TeilString in Split(AddString, ",")
Range(Teilstring).Interior.Colorindex = 15
Next
Gruß Daniel

AW: Zeilen einfärben
28.01.2013 15:06:57
reiner
hallo daniel,
dein Vorschlag gefällt mir sehr gut, ich will ihn verwenden; es gibt jedoch noch einen Änderungswunsch:
die Zeilenadressen im String werden in der Schreibweise z.B. "$C$135" oder "$F$5" in der Variablen gespeichert.
Folglich werden auch nur die Zellen in Spalte "C" bzw. "F" farblich markiert. Ist es möglich die Farbmnarkierung auf die Spalten "A bis H" zu erweitern?
mfg
reiner

Anzeige
AW: Zeilen einfärben
28.01.2013 17:12:07
Daniel
Intersect(Range(Teilstring).EntireRow, Range("A:H")).Interior.colorindex = 15
Gruß Daniel

AW: Zeilen einfärben
28.01.2013 20:32:16
reiner
danke dir,
mfg
reiner

153 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige