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

Forumthread: Rahmenlinien auslesen

Rahmenlinien auslesen
24.02.2020 18:11:55
Dieter(Drummer)
Guten Abend VBA Spezislisten/innen.
Ich möchte die Zellrahmenlinien einer Zelle auslesen.
Der Code "Rahmen_Linie_auslesen" bringt aber einen Fehlerhinweis, den ich nicht beheben kann.
Hinweis: Laufzeitfehler '438', Objekt unterstütz die Eigenschaft oder Methode nicht und markiert die Zeile MsgBox.
Der Code:
Sub Rahmen_Linie_auslesen()
MsgBox "Links:      " & Selection.Borders(xlEdgeLeft).LineStyleIndex & vbLf & _
Oben:     " & Selection.Borders(xlEdgeTop).LineStyleIndex & vbLf & _
Rechts:   " & Selection.Borders(xlEdgeRight).LineStyleIndex & vbLf & _
Unten:    " & Selection.Borders(xlEdgeBottom).LineStyleIndex, , "Rahmenlinie"
End Sub

Z.B. Der Code "Rahmen_Farbe_auslesen" funktionert.
Mir der Bitte um Hilfe,
grüßt, Dieter(Drummer)
Musterdatei: https://www.herber.de/bbs/user/135412.xlsm
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rahmenlinien auslesen
24.02.2020 18:19:34
Beverly
Hi Dieter,
benutze einfach .LineStyle anstelle .LineStyleIndex
Findet man übrigens heruas wenn man auf Selection.Borders(xlEdgeLeft) eine Überwachung setzt...


AW: Rahmenlinien auslesen
24.02.2020 18:24:01
Dieter(Drummer)
Hallo Karin,
Danke für Rückkmeldung. Da kommt der gleiche Fehlerhinweis.
Code sieht jetzt so aus:
Sub Rahmen_Linie_auslesen()
MsgBox "Links:      " & Selection.Borders(xlEdgeLeft).LineStyleIndex & vbLf & _
"Oben:     " & Selection.Borders(xlEdgeTop).LineStyle & vbLf & _
"Rechts:   " & Selection.Borders(xlEdgeRight).LineStyle & vbLf & _
"Unten:    " & Selection.Borders(xlEdgeBottom).LineStyle, , "Rahmenlinie"
End Sub

Hast Du noch eine Idee?
Gruß, Dieter(Drummer)
Anzeige
AW: Rahmenlinien auslesen
24.02.2020 19:55:04
Beverly
Hi Dieter,
klar kommt derselbe Fehler weil du bei xlEdgeLeft immer noch den Index dahinter stehen hast.


AW: Danke Karin, hatte ich schon bemerkt ...
24.02.2020 20:06:17
Dieter(Drummer)
... Danke für prima Hilfe und noch einen erfreulichen Abend.
Gruß, Dieter(Drummer)
AW: Sorry Karin und Regina, ...
24.02.2020 18:30:30
Dieter(Drummer)
... hattet beide Recht. Es funktioniert. Hatte eine Änderung übersehen.
Danke euch und einen erfreulichen Abend.
Gruß, Dieter(Drummer)
Anzeige
AW: Rahmenlinien auslesen
24.02.2020 18:39:44
Dieter(Drummer)
Hallo Karin,
gibt es auch eine Codevariente, die die Art der Rahmenlinien anzeigt. Z.B. xlDashDot, xlContinous, usw.
Wäre schöm wenn es da auch einen Code gäbe.
Gruß, Dieter(Drummer)
AW: Rahmenlinien auslesen
24.02.2020 18:47:54
Regina
hallo Dieter,
so z.B.:
Select Case Selection.Borders.LineStyle
Case 1
MsgBox "xlContinuous"
Case 4
MsgBox "xlDashDot"
' usw.
end select
Die übrigen Konstanten findest Du über die OnlineHilfe unter "XlLineStyle-Aufzählung"
gruß
regina
Anzeige
AW: Danke Regina, perfekt ...
24.02.2020 18:53:59
Dieter(Drummer)
... funktioniert wie gewünscht. Die Werte zu den Rahmennamen habe ich.
Wünsche noch einen erfreulichen Abend.
Gruß, Dieter(Drummer)
AW: Rahmenlinien auslesen
24.02.2020 18:21:01
Regina
Hi,
ich meine, es heißt nur LineStyle, ohne Index
Gruß
Regina
AW: Rahmenlinien auslesen
24.02.2020 18:25:33
Dieter(Drummer)
Hallo Regina,
Danke Dir auch für Hinweis, aber kommt gleicher Fehlerhinweis.
Gruß, Dieter(Drummer)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Rahmenlinien auslesen in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub Rahmen_Linie_auslesen()
       MsgBox "Links:      " & Selection.Borders(xlEdgeLeft).LineStyle & vbLf & _
       "Oben:     " & Selection.Borders(xlEdgeTop).LineStyle & vbLf & _
       "Rechts:   " & Selection.Borders(xlEdgeRight).LineStyle & vbLf & _
       "Unten:    " & Selection.Borders(xlEdgeBottom).LineStyle, , "Rahmenlinie"
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Wähle die Zelle aus, deren Rahmenlinien du auslesen möchtest.

  6. Führe das Makro aus: Drücke ALT + F8, wähle Rahmen_Linie_auslesen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Laufzeitfehler '438': Dieser Fehler tritt auf, wenn du LineStyleIndex anstelle von LineStyle verwendest. Stelle sicher, dass du die korrekte Eigenschaft verwendest.

  • Fehlende Auswahl: Wenn du versuchst, das Makro auszuführen, ohne eine Zelle auszuwählen, wird ebenfalls ein Fehler angezeigt. Achte darauf, immer eine Zelle mit Rahmenlinien auszuwählen.


Alternative Methoden

Eine alternative Methode, um die Art der Rahmenlinien anzuzeigen, ist die Verwendung von Select Case. Hier ein Beispiel:

Sub RahmenArt_auslesen()
    Select Case Selection.Borders(xlEdgeLeft).LineStyle
        Case xlContinuous
            MsgBox "Rahmenstil: xlContinuous"
        Case xlDashDot
            MsgBox "Rahmenstil: xlDashDot"
        ' Weitere Fälle hinzufügen
    End Select
End Sub

Diese Methode ermöglicht es dir, die unterschiedlichen Rahmenlinien wie xlDashDot oder xlContinuous zu erkennen.


Praktische Beispiele

Wenn du den oben genannten Code anpasst, um spezifische Rahmenlinien abzufragen, kannst du Folgendes tun:

  1. Zeile für die linke Rahmenlinie:

    MsgBox "Linke Rahmenlinie: " & Selection.Borders(xlEdgeLeft).LineStyle
  2. Zeige alle Rahmenlinien an:

    MsgBox "Alle Rahmenlinien: " & _
    "Links: " & Selection.Borders(xlEdgeLeft).LineStyle & vbLf & _
    "Oben: " & Selection.Borders(xlEdgeTop).LineStyle & vbLf & _
    "Rechts: " & Selection.Borders(xlEdgeRight).LineStyle & vbLf & _
    "Unten: " & Selection.Borders(xlEdgeBottom).LineStyle

Diese Beispiele helfen dir, die Informationen zu den rahmenlinien leicht zu extrahieren.


Tipps für Profis

  • Debugging: Setze Haltepunkte in deinem VBA-Code, um den Status der Variablen und Objekte zu überwachen.
  • Benutzerdefinierte Fehlermeldungen: Verwende On Error Resume Next, um Fehler abzufangen und benutzerfreundliche Meldungen zu zeigen.
  • Dokumentation: Halte deine Codes gut dokumentiert, um die Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Kann ich die Rahmenlinien für mehrere Zellen gleichzeitig auslesen?
Ja, du kannst eine Schleife verwenden, um durch die Zellen in einem Bereich zu iterieren und die Rahmenlinien für jede Zelle auszulesen.

2. Welche Excel-Version wird benötigt?
Der VBA-Code funktioniert in Excel-Versionen, die VBA unterstützen, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige