Live-Forum - Die aktuellen Beiträge
Datum
Titel
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: Rahmen unten bei Bedigung

Rahmen unten bei Bedigung
02.04.2015 08:45:16
Ronny
Hallo zusammen
Ich habe eine Tabelle im Feld A1 steht immer das heutige Datum. Ab der Zeile 3 steht in jeder Zeile in Spalte A ein Lieferdatum. Ich möchte zur besseren Darstellung immer die letzte Zeile mit einer dicken Rahmenlinie trennen. Also ich habe dann immer ein Block mit Zeilen mit dem gleichen Lieferdatum dann den nächsten mit dem um ein Tag höherem Datum usw. Immer Montag bis Freitag und die Daten sind von Spalte A bis Spalte G. Hat jemand eine Idee?

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rahmen unten bei Bedigung
02.04.2015 08:47:10
SF
Hola,
und wo soll die Linie jetzt genau hin?
Gruß,
steve1da

AW: Rahmen unten bei Bedigung
02.04.2015 11:57:43
Ronny
Die Linie soll in der letzten Zeile mit dem Datum unten sein.

AW: Rahmen unten bei Bedigung
02.04.2015 09:24:29
Ralf
Hallo,
die bedingte Formatierung fällt aus, da damit keine dicken Rahmen gezogen werden können.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 2 Then
Dim Zelle As Range
With Target.Parent
For Each Zelle In .Range(.Cells(3, 1), .Cells(.UsedRange.Rows.Count, 1))
With .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 7)).Borders(xlEdgeBottom)
If Zelle.Value  Zelle.Offset(1, 0).Value Then
.Color = vbBlack
.LineStyle = xlContinuous
.Weight = xlThick
Else
.LineStyle = xlNone
End If
End With
Next
End With
End If
End Sub
Rückmeldung erbeten..
Gruß
Ralf

Anzeige
AW: Rahmen unten bei Bedigung
02.04.2015 12:15:54
Ronny
Besten Dank das klappt schon ziemlich nach meinen Vorstellungen! Da ich zuvor schon einige Sachen vornehme die ich über einen Button ausführe, wäre es ideal ich könnte das integrieren. Was muss ich ändern das es geht? Mit Worksheet_Change(ByVal Target As Range) hast du ja eine Prozedur wenn ich es richtig verstehe, das habe ich dann wenn ich per Button ausführe nicht oder?

Anzeige
AW: Rahmen unten bei Bedigung
02.04.2015 13:13:37
Werner
Hallo Ronny,
der Code von Ralf gehört in das Tabellenplatt in dem er sich auch auswirken soll.
Annahme das soll sich im Tabellenblatt1 auswirken: Rechtsklick auf den Tabellenblattreiter - Code anzeigen und dann den kompletten Code rechts in das Code-Fenster kopieren.
Der Code wirkt sich dann automatisch aus, sobald im Tabellenplatt ab A3 etwas eingetragen/geändert wird.
Werner

Anzeige
AW: Rahmen unten bei Bedigung
02.04.2015 15:21:02
Ronny
Ja das hab ich verstanden ich hab den Code auch so eingefügt. Das Problem ist bloss ich möchten den Code nicht ausführen wenn sich was ändert sondern per Button. Ich holde die Daten aus einer andere Exceldatei und auch das führe ich schon per Button aus.
Ronny

AW: Rahmen unten bei Bedigung
02.04.2015 16:50:58
Ralf
Diesen unnötigen programmieraufwand kannst du verhindern, wenn du gleich alle Fakten darlegst

Anzeige
AW: Rahmen unten bei Bedigung
07.04.2015 07:50:48
Ronny
Hallo Ralf das tut mir leid. Ich habe nicht so weit überlegt das dies eine Rolle spielt. Dein Code funktioniert grundsätzlich perfekt. Ich wollte bloss den Code nicht automatisch bei einer Änderung ausführen sondern per Button.

AW: Rahmen unten bei Bedigung
07.04.2015 11:26:08
Ronny
Hallo Ralf
Es tut mir leide ich habe nicht soweit gedacht das dies relevant ist. Ich wollte doch bloss den Code per Button und nicht automatisch ausführen lassen.
Sorry
Ronny
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Rahmen unten bei Bedigung in Excel


Schritt-für-Schritt-Anleitung

Um eine dicke Rahmenlinie in der letzten Zeile eines Blocks mit gleichen Lieferdaten in Excel zu erstellen, brauchst Du VBA. Folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Finde das richtige Tabellenblatt: Klicke im Projekt-Explorer auf das Tabellenblatt, in dem Du die Rahmenlinie anwenden möchtest (z.B. „Tabelle1“).

  3. Füge den Code ein: Kopiere den folgenden Code und füge ihn in das große Code-Fenster ein:

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 And Target.Row > 2 Then
            Dim Zelle As Range
            With Target.Parent
                For Each Zelle In .Range(.Cells(3, 1), .Cells(.UsedRange.Rows.Count, 1))
                    With .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 7)).Borders(xlEdgeBottom)
                        If Zelle.Value <> Zelle.Offset(1, 0).Value Then
                            .Color = vbBlack
                            .LineStyle = xlContinuous
                            .Weight = xlThick
                        Else
                            .LineStyle = xlNone
                        End If
                    End With
                Next
            End With
        End If
    End Sub
  4. Speichere Deine Änderungen und schließe den VBA-Editor.

  5. Teste den Code: Ändere die Werte in Spalte A ab Zeile 3, um zu sehen, ob die dicke Rahmenlinie wie gewünscht erscheint.


Häufige Fehler und Lösungen

  • Problem: Die Rahmenlinie erscheint nicht.

    • Lösung: Stelle sicher, dass Du den Code im richtigen Tabellenblatt eingefügt hast und dass Du die Spalte A bearbeitest.
  • Problem: Die Rahmenlinie wird automatisch gesetzt, wenn Du Änderungen vornimmst.

    • Lösung: Wenn Du den Code nur per Button ausführen möchtest, musst Du das Worksheet_Change-Ereignis in eine Sub-Prozedur umwandeln. Hier ist ein Beispiel:
    Sub SetzeRahmen()
        Dim Zelle As Range
        With ThisWorkbook.Sheets("Tabelle1") ' Passe den Namen an
            For Each Zelle In .Range(.Cells(3, 1), .Cells(.UsedRange.Rows.Count, 1))
                With .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 7)).Borders(xlEdgeBottom)
                    If Zelle.Value <> Zelle.Offset(1, 0).Value Then
                        .Color = vbBlack
                        .LineStyle = xlContinuous
                        .Weight = xlThick
                    Else
                        .LineStyle = xlNone
                    End If
                End With
            Next
        End With
    End Sub

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du versuchen, die Rahmenlinie manuell zu setzen. Wähle die letzte Zeile eines Blocks aus und gehe zu:

  • Start > Rahmen > Rahmenlinien > Dicke untere Rahmenlinie.

Dies ist jedoch nicht so automatisiert wie die VBA-Methode und erfordert mehr manuelle Schritte.


Praktische Beispiele

Angenommen, Du hast in Spalte A folgende Lieferdaten:

A3: 2023-10-23
A4: 2023-10-23
A5: 2023-10-24
A6: 2023-10-24
A7: 2023-10-25

Das Skript wird die dicke Rahmenlinie unter der Zeile A4 und A6 setzen, da diese Zeilen die letzten in ihren jeweiligen Gruppen sind.


Tipps für Profis

  • Nutze die Funktion xlEdgeBottom für die Rahmenlinien, um die Kontrolle über die Dicke und den Stil der Linien zu haben.
  • Teste den Code in einer Testdatei, um mögliche Fehler zu vermeiden, bevor Du ihn in Deine Hauptdatei überträgst.
  • Erweitere den Code, um auch andere Rahmenlinien (z.B. für die Oberseite) zu setzen, wenn Du ein konsistentes Design wünschst.

FAQ: Häufige Fragen

1. Kann ich den Code auch in Excel 2016 verwenden?
Ja, der Code funktioniert in Excel 2016 und allen neueren Versionen.

2. Wie kann ich den Code per Button ausführen?
Erstelle einen Button über Entwicklertools > Einfügen > Button (Formularsteuerelement) und weise die Sub-Prozedur SetzeRahmen zu.

3. Ist es möglich, die Rahmenfarbe zu ändern?
Ja, ändere den .Color = vbBlack-Teil im Code in eine andere Farbe, z.B. .Color = RGB(255, 0, 0) für rot.

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