Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen unterstreichen per Makro/VBA

Zeilen unterstreichen per Makro/VBA
18.07.2006 14:24:24
Düppi
Liebe Excel-Profis,
ich möchte per Makro/VBA verschiedene Zeilen einer Tabelle mit dicken Linien unterstreichen. Dicke Linien sind ja über bedingte Formatierungen leider nicht möglich.
Welche Zeilen es sind, hängt von der Eingabe des Users in einer Zelle ab, die über Daten/Gültigkeit/Liste vorgegeben ist.
Beispiel: Ist die Eingabe "Schema 1", sollen die Zeilen 6/12/18/24 dick unterstrichen werden. Ist die Eingabe "Schema 2", sollen die Zeilen 4/12/16/24 dick unterstrichen werden. Insgesamt gibt es 30 verschiedene Schemen - also wohl 30 Makros? Diese sollen zudem vorangegangene Unterstreichungen löschen, weil sich die Eingabe in der Zelle (Daten/Gültigkeit/Liste) ändern kann. Somit sind dann immer die richtigen Zeilen unterstrichen.
Die Dateneingabe in der Zelle könnte auch über ein Steuerelement geschehen, dem ein Makro zugewiesen werden kann.
Wäre toll, wenn ein Formatierungsprofi antworten würde. Vielen Dank, Düppi
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen unterstreichen per Makro/VBA
18.07.2006 15:03:52
Matthias
Hallo Düppi,
erstmal brauchst du ein Tabellenblatt namens "Schemata" in Code ist es so genannt):
Schemata
 AB
1Schema 16,12,18,24
2Schema 24,12,16,24
3Schema 31,10,30
4… 
5… 
6  
7  
8  
9  
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Dann ins Tabellenmodul des Tabellenblattes mit der Eingabe des Schamas:
Private Sub Worksheet_Change(ByVal Target As Range) Const Zelle = "A1"' in dieser Zelle wird das Schema ausgewählt, ggf. anpassen! If Target.Address = Range(Zelle).Address Then Dim l, liste, eintr On Error Resume Next l = WorksheetFunction.VLookup(Target.Value, Sheets("Schemata").Range("A1:B30"), 2, False) If Err.Number > 0 Then MsgBox "Schema nicht gefunden!" Exit Sub End If Cells.Borders.LineStyle = xlNone 'alle Linien löschen liste = Split(l, ",") For Each eintr In liste With Rows(eintr).Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With Next End If End Sub
Viel Erfolg,
Matthias
Anzeige
AW: Zeilen unterstreichen per Makro/VBA
18.07.2006 15:28:54
Düppi
Hallo Matthias,
habe alles so gemacht, wie Du es empfiehlst - Tabellenblatt Schemata angelegt, Code in Modul eingefügt - nur passiert nichts! Kann es an der Eingabe in A1 liegen? Habe da mal Schema 1 eingegeben, mal 6,12,18,24 - nichts!
Was tun, fragt Düppi!
AW: Zeilen unterstreichen per Makro/VBA
18.07.2006 15:41:40
Matthias
Hallo Düppi,
Die Beispieldatei:
https://www.herber.de/bbs/user/35184.xls
Gruß Matthias
Anzeige
AW: Zeilen unterstreichen per Makro/VBA
18.07.2006 15:58:58
Düppi
Hallo Matthias,
jetzt klappts bestens! Nur noch eine Ergänzung: In meiner Tabelle gibt es Bereiche mit durchaus gewünschten Linien unterschiedilcher Dicke. Wie kann ich in Deinem VBA den Bereich eingrenzen - auf A5:AH55, um genau zu sein.
In diesem Bereich sollen die übrigen, horizontalen und vertikalen Linien (mein Formulierungsfehler) nicht gelöscht, sondern auf dünn gesetzt werden. Dann wären die gewünschen Linien Dick und alle anderen Dünn.
Wäre nett, wenn Du mir beim letzten Schritt auch noch mal hilftst. Dank und Gruß, Düppi
Anzeige
AW: Zeilen unterstreichen per Makro/VBA
18.07.2006 16:23:35
Matthias
Hallo Düppi,
Wie kann ich in Deinem VBA den Bereich eingrenzen - auf A5:AH55, um genau zu sein.
statt
Cells.Borders.LineStyle = xlNone 'alle Linien löschen
schreibe:

Range("5:55").Borders.LineStyle = xlNone 'alle Linien löschen

Das löscht nur die Linien der Zeilen 5 bis 55.
Aber du willst ja dies:
In diesem Bereich sollen die übrigen, horizontalen und vertikalen Linien (mein Formulierungsfehler) nicht gelöscht, sondern auf dünn gesetzt werden. Dann wären die gewünschen Linien Dick und alle anderen Dünn.
Da müsste man ja jede Linie jeder Zelle abfragen, das ist sehr aufwendig. Oder sind alle Linien auf dünn zu setzen (also ein einfaches Gitternetz)?
Vielleicht ist es besser, erst alle Linien zu löschen und dann diejenigen, die immer da sein sollen, neu zu zeichnen.
Nutze doch mal den Makrorekorder, dann kriegst du es vielleicht selbst hin.
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen unterstreichen per Makro/VBA


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen mithilfe von Makros (VBA) zu unterstreichen, folge diesen Schritten:

  1. Erstelle ein neues Tabellenblatt: Benenne es "Schemata".

  2. Trage deine Daten ein: Füge in Spalte A deine Schemen ein (z.B. "Schema 1", "Schema 2") und in Spalte B die entsprechenden Zeilennummern (z.B. "6,12,18,24").

  3. Öffne den VBA-Editor: Drücke ALT + F11.

  4. Füge den folgenden Code in das Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Const Zelle = "A1" ' Hier wird das Schema ausgewählt
       If Target.Address = Range(Zelle).Address Then
           Dim l, liste, eintr
           On Error Resume Next
           l = WorksheetFunction.VLookup(Target.Value, Sheets("Schemata").Range("A1:B30"), 2, False)
           If Err.Number > 0 Then
               MsgBox "Schema nicht gefunden!"
               Exit Sub
           End If
           Cells.Borders.LineStyle = xlNone ' Alle Linien löschen
           liste = Split(l, ",")
           For Each eintr In liste
               With Rows(eintr).Borders(xlEdgeBottom)
                   .LineStyle = xlContinuous
                   .Weight = xlThick
                   .ColorIndex = xlAutomatic
               End With
           Next
       End If
    End Sub
  5. Teste das Makro: Ändere den Inhalt der Zelle A1 auf "Schema 1" oder "Schema 2", um die entsprechenden Zeilen unterstreichen zu lassen.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass das Tabellenblatt "Schemata" korrekt benannt ist und die Zelle A1 als Eingabe verwendet wird.
  • Problem: Zeilen werden nicht unterstrichen.

    • Lösung: Prüfe, ob die Schemen und die dazugehörigen Zeilennummern korrekt in der Tabelle eingetragen sind.
  • Problem: Eingabe in A1 ist nicht korrekt.

    • Lösung: Achte darauf, dass du genau die Schemenbezeichnungen verwendest, die in der Tabelle stehen.

Alternative Methoden

Eine alternative Möglichkeit, Zeilen in Excel zu unterstreichen, ist die Verwendung von bedingten Formatierungen. Diese Methode hat jedoch Einschränkungen, da sie keine dicken Linien erlaubt. Du könntest auch mit dem Makrorekorder arbeiten, um deine eigenen VBA-Skripte zu erstellen.


Praktische Beispiele

Hier ein einfaches Beispiel, um die Zeilen unter Verwendung von VBA zu unterstreichen:

  • Für das Schema 1: Bei der Eingabe von "Schema 1" in Zelle A1 werden die Zeilen 6, 12, 18 und 24 dick unterstrichen.
  • Für das Schema 2: Bei der Eingabe von "Schema 2" in Zelle A1 werden die Zeilen 4, 12, 16 und 24 dick unterstrichen.

Tipps für Profis

  • Verwende excel vba aktive zeile ermitteln um die aktuelle Zeile zu identifizieren und gezielt zu formatieren.
  • Wenn du die vba zeilennummer ermitteln möchtest, kannst du die ActiveCell.Row-Eigenschaft verwenden.
  • Nutze Cells.Borders.LineStyle effizient, um gezielt Linien zu entfernen oder zu setzen, ohne das gesamte Blatt zu beeinflussen.

FAQ: Häufige Fragen

1. Wie kann ich die aktiven Zeilen in Excel mit VBA ermitteln?
Verwende ActiveCell.Row, um die aktuelle Zeilennummer zu ermitteln.

2. Kann ich mehr als 30 Schemen mit einem Makro verwalten?
Ja, du kannst die Anzahl der Schemen erhöhen, indem du die Daten in der Tabelle entsprechend erweiterst und den VBA-Code anpasst.

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