Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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: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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige