Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
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
Inhaltsverzeichnis

Rahmen (Linestyle Laufzeitfehler) wenn nur 1 Linie

Rahmen (Linestyle Laufzeitfehler) wenn nur 1 Linie
Tanja
Guten Tag zusammen
Ich habe ein Problem mit einem Rahmen.
Und zwar erscheint immer die Fehlermeldung "Die LineStyle-Eigenschaft des Border-Objektes kann nicht festgelegt werden". Wenn ich debugge wird die hier unten fett dargestellte Stelle markiert. Der Fehler liegt also bei den horizontalen Linien.
Diese Meldung erscheint nur wenn die Tabelle nur EINE Zeile besitzt. Sobald es 2 und mehr Zeilen sind funktioniert es tadellos.
Kann mir jemand einen Tipp geben wie ich das abfangen kann?
Hier noch der Code.
Dim lz%
lz = Cells(13, 1).End(xlDown).Row
With ThisWorkbook.Sheets(Sheet_Daten).Range(Cells(14, 1), Cells(lz, 8))
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeTop).ColorIndex = xlAutomatic
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeBottom).ColorIndex = xlAutomatic
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeRight).ColorIndex = xlAutomatic
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlThin
.Borders(xlInsideHorizontal).ColorIndex = xlAutomatic

End with
Vielen Dank
Liebe Grüsse Tanja

AW: Rahmen (Linestyle Laufzeitfehler) wenn nur 1 Linie
31.08.2012 09:34:19
Rudi
Hallo,
da die Rahmen alle gleich sind einfach so:
With ThisWorkbook.Sheets(1).Range(Cells(14, 1), Cells(lz, 8))
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Borders.ColorIndex = xlAutomatic
End With

Gruß
Rudi

AW: Rahmen (Linestyle Laufzeitfehler) wenn nur 1 Linie
31.08.2012 09:48:03
Tanja
Vielen Dank Rudi!
Ich habe wieder viel zu weit überlegt. :-(
Eine Antwort ist wiedermal superschnell und funktioniert einwandfrei
Liebe Grüsse
Tanja

Dazu gibt's aber noch einiges zu bemerken, ...
31.08.2012 15:09:57
Luc:-?
…Tanja (& Rudi);
1. Der Fehler trat deshalb auf, weil du versucht hast, innere Rahmenlinien festzulegen. Dafür muss die betreffende Zelle aber immer eine Vorgängerzelle in der jeweiligen Richtung haben, sonst kann das nicht fktn.
2. Die Verwendung der xlEdge~-Konstanten (7…10) ist trügerisch, denn bei ihnen handelt es sich nicht um Elementindizes des Borders-Auflistungs- des Range-Objekts, sondern um die Indizes für die real sichtbaren Rahmen, weshalb sie wohl auch nicht mit 1 beginnen, sondern mit 7. Die 6 Elemente des Borders-Auflistungsobjekts wdn von 1…6 durchnummeriert, wobei 5 u.6 mit den Enumerationskonstanten xlDiagonalDown u.xlDiagonalUp identisch sind, die übrigens im Ggsatz zu den unter 1. erwähnten Konstt 11/12 stets nur gleich formatiert wdn können, wenn beide Diagonalen verwendet wdn.
3. Die Enumeration der 6 Auflistungselemente folgt der Rhf links-rechts-oben-unten-fallend-steigend, die der 8 sichtbaren Rahmen der Rhf fallend-steigend-links-oben-unten-rechts-vertikal-horizontal, wobei die Diagonalen zusammenfallen.
4. Für das FormatCondition-Objekt gelten die xlEdge~-Konstanten nicht, aber die Auflistungsindizes 1…4 können mit gleicher Bedeutung verwendet wdn. Außerdem kann man hierfür auch die negativen Konstt xlLeft, xlTop, xlBottom, xlRight verwenden, die aber wiederum nicht für das Range-Objekt gelten!
5. Die Indizes 1…4 können sich von den Indizes 7…10 unterscheiden, wenn zwischen Zeilen u/o Spalten jeweils nur 1 Rahmenlinie gezogen wurde. Darauf reagiert Xl auch bei Seitenumbrüchen innerhalb einer Tabelle. Es fehlt dann auf der 1.Seite die Abschlusslinie oder auf der 2. die Anfangslinie. Wenn man so etwas steuern resp beachten will, muss man (bei zellweisem Vorgehen) mit den Auflistungsindizes 1…4 arbeiten! Für ganze Bereiche kann für das Range-Objekt auch 7…10 verwendet wdn, falls auch die Indizes 11+12 benutzt wdn. Sollen alle Zellen eines Bereichs rundum gerahmt wdn, geht man so vor wie es Rudi hier vorschlägt. Dadurch wdn stets alle senkrechten und waagerechten Rahmen (1…4) des Borders-Auflistungsobjekts gesetzt.
Übrigens, für HTML gelten wieder etwas andere Regeln und Reihenfolgen… ;-)
Gruß Luc :-?

Anzeige
AW: Dazu gibt's aber noch einiges zu bemerken, ...
31.08.2012 15:34:02
Tanja
Hallo Luc
Vielen Dank für die zusätzlichen Informationen.
Jetzt weiss ich wieder ein wenig mehr über Rhamen. Hoffe ich kriege das das nächste mal so hin, wenn ich mal spezielle Rahmen erstellen möchte :-)
Für mein jetziges Problem ist die Lösung von Rudi aber völlig ausreichend.
Thänx :-)
Liebe Grüsse
Tanja

Sagte ich ja... Bittää säähr! ;-) owT
31.08.2012 15:41:42
Luc:-?
:-?

...Die du übrigens auch der VBE-Hilfe entnehmen...
01.09.2012 16:00:40
Luc:-?
…kannst, Tanja;
das, was ich geschrieben habe, aber nur zT! ;->
SchöWE, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige