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

Rahmen per Schaltfläche setzen/entfernen

Forumthread: Rahmen per Schaltfläche setzen/entfernen

Rahmen per Schaltfläche setzen/entfernen
26.12.2004 18:15:50
Jörg
Hallo Zusammen,
wer kann mir bei folgendem Problemen helfen:
1. In einer Tabelle soll durch das Drücken eines Button in der ersten Zelle der Spalte A1:A500 am linken Rand ein Rahmen eingefügt und auch wieder enfernt werden, egal ob sich die markierte Zelle in der Spalte B oder D etc. befindet.
Bsp: Markierte Zelle ist D9 - Rahmen soll am linken Rand von Zelle A9 gesetzt werden.
2. Danach sollen die mit dem Rahmen markierten Zeile per Schaltfläche ein- und ausgeblendet werden.
Wäre super, wenn es da eine Lösung gibt. Vielen Dank schon mal.
LG
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
26.12.2004 20:20:59
Josef Ehrensberger
Hallo Jörg!
Probier mal:

Sub Rahmen()
Dim rng As Range
For Each rng In Selection
With Cells(rng.Row, 1).Borders(xlEdgeLeft)
If .LineStyle <> xlNone Then
.LineStyle = xlNone
Else
.LineStyle = xlContinuous
.Weight = xlThick
End If
End With
Next
End Sub
Sub aus_ein()
Dim rng As Range
For Each rng In Range("A1:A500")
If rng.Borders(xlEdgeLeft).LineStyle <> xlNone Then
rng.EntireRow.Hidden = Not rng.EntireRow.Hidden
End If
Next
End Sub


Gruß Sepp
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 08:34:36
Jörg
Super, das funktioniert. Vielen Dank.
Allerdings habe ich noch eine kleine Hürde.
Wie funktioniert das ein-/ausblenden, wenn der Rahmen zusätzlich auch durch bedingte Formatierung gesetzt wird.
Gibt es da eine Lösung?
LG
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 09:09:23
Josef Ehrensberger
Hallo Jörg!
Dann muss man zusätzlich die Bedingung der Bedingten Formatierung abfagen!
Wie lautet die Bedingung?

Gruß Sepp
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 11:05:32
Jörg
Hi Sepp,
die Bedingung lautet: =VERWEIS(2;1/($B30:L30="Zeile ausblenden"))
Vielen Dank für Deine Hilfe.
LG Jörg
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 12:21:15
Josef Ehrensberger
Hallo Jörg!
Probier mal:

Sub aus_ein()
Dim rng As Range, b As Byte
Application.ScreenUpdating = False
For Each rng In Range("A1:A500")
b = 0
On Error Resume Next
b = WorksheetFunction.Match("Zeile ausblenden", _
Range(Cells(rng.Row, 2), Cells(rng.Row, 12)))
On Error GoTo 0
If rng.Borders(xlEdgeLeft).LineStyle <> xlNone Or b <> 0 Then
rng.EntireRow.Hidden = Not rng.EntireRow.Hidden
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß Sepp
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 16:11:14
Jörg
Hi Sepp,
die Zeilen, die die Bedingung erfüllen und die manuell mit einem Rahmen versehen werden, werden ausgeblendet. Allerdings sind diverse andere Zeilen auch betroffen.
Ich verstehe auch gar nicht nach welchem Kriterium diese ausgeblendet werden. Es sind m. E. aber Zeilen, in denen Text oder Zahlen hinterlegt sind.
Ich hoffe, ich verlange hier nicht zu viel. Trotzdem schon mal vielen Dank im Voraus.
LG
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
27.12.2004 17:56:03
Josef Ehrensberger
Hallo Jörg!
Da hab' ich doch glatt eine Null vergessen;-))
So sollte es aber klappen:

Sub aus_ein()
Dim rng As Range, b As Byte
Application.ScreenUpdating = False
For Each rng In Range("A1:A500")
b = 0
On Error Resume Next
b = WorksheetFunction.Match("Zeile ausblenden", _
Range(Cells(rng.Row, 2), Cells(rng.Row, 12)), 0)
On Error GoTo 0
If rng.Borders(xlEdgeLeft).LineStyle <> xlNone Or b <> 0 Then
rng.EntireRow.Hidden = Not rng.EntireRow.Hidden
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß Sepp
Anzeige
AW: Rahmen per Schaltfläche setzen/entfernen
26.12.2004 22:35:46
Hans

Sub user()
Dim strUser As String
strUser = Application.UserName
End Sub

;
Anzeige

Infobox / Tutorial

Rahmen per Schaltfläche setzen und entfernen in Excel


Schritt-für-Schritt-Anleitung

Um einen Rahmen in Excel per Schaltfläche zu setzen oder zu entfernen, kannst du die folgenden Schritte durchführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Kopiere und füge den folgenden Code ein:

    Sub Rahmen()
       Dim rng As Range
       For Each rng In Selection
           With Cells(rng.Row, 1).Borders(xlEdgeLeft)
               If .LineStyle <> xlNone Then
                   .LineStyle = xlNone
               Else
                   .LineStyle = xlContinuous
                   .Weight = xlThick
               End If
           End With
       Next
    End Sub
    
    Sub aus_ein()
       Dim rng As Range, b As Byte
       Application.ScreenUpdating = False
       For Each rng In Range("A1:A500")
           b = 0
           On Error Resume Next
           b = WorksheetFunction.Match("Zeile ausblenden", _
               Range(Cells(rng.Row, 2), Cells(rng.Row, 12)))
           On Error GoTo 0
           If rng.Borders(xlEdgeLeft).LineStyle <> xlNone Or b <> 0 Then
               rng.EntireRow.Hidden = Not rng.EntireRow.Hidden
           End If
       Next
       Application.ScreenUpdating = True
    End Sub
  4. Erstelle eine Schaltfläche:

    • Gehe zu "Entwicklertools" > "Einfügen" und wähle eine Schaltfläche (Button).
    • Ziehe die Schaltfläche auf dein Arbeitsblatt und verknüpfe sie mit der Rahmen-Subroutine.
  5. Teste die Funktion:

    • Markiere eine Zelle in der Tabelle und drücke die Schaltfläche, um den Rahmen zu setzen oder zu entfernen.

Häufige Fehler und Lösungen

  • Rahmen lässt sich nicht entfernen:

    • Stelle sicher, dass du die Zelle im richtigen Bereich (A1:A500) markiert hast. Der VBA-Code funktioniert nur in diesem Bereich.
  • Zeilen werden nicht korrekt ein- oder ausgeblendet:

    • Überprüfe die Bedingung in der Match-Funktion. Hast du den richtigen Text eingegeben?
  • Schaltfläche funktioniert nicht:

    • Achte darauf, dass die Schaltfläche korrekt mit der Subroutine verbunden ist.

Alternative Methoden

Eine alternative Methode, um Rahmen in Excel zu entfernen oder zu setzen, ist die Verwendung von bedingter Formatierung. Du kannst Regeln erstellen, die automatisch Rahmen hinzufügen, basierend auf bestimmten Bedingungen, ohne VBA zu verwenden.


Praktische Beispiele

  1. Rahmen in einer Tabelle entfernen: Um alle Rahmenlinien in einem bestimmten Bereich zu entfernen, kannst du folgenden Code verwenden:

    Sub AlleRahmenEntfernen()
       Range("A1:A500").Borders.LineStyle = xlNone
    End Sub
  2. Diagrammrahmen entfernen: Um den Rahmen eines Diagramms zu entfernen, kannst du diesen Code nutzen:

    ActiveChart.Border.LineStyle = xlNone

Tipps für Profis

  • Nutze die With-Anweisung, um die Lesbarkeit deines Codes zu verbessern, besonders wenn du mit mehreren Eigenschaften eines Objekts arbeitest.

  • Überlege, ob du die Application.ScreenUpdating-Eigenschaft verwenden möchtest, um die Bildschirmaktualisierung während der Ausführung des Codes zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.

  • Experimentiere mit verschiedenen LineStyle-Eigenschaften, um verschiedene Rahmenarten zu erstellen.


FAQ: Häufige Fragen

1. Wie entferne ich alle Rahmenlinien auf einmal?
Verwende die folgende Subroutine, um alle Rahmenlinien in einem bestimmten Bereich zu entfernen:

Sub AlleRahmenEntfernen()
    Range("A1:A500").Borders.LineStyle = xlNone
End Sub

2. Kann ich einen Rahmen für ein Textfeld entfernen?
Ja, du kannst den Rahmen eines Textfeldes mit folgendem Code entfernen:

ActiveSheet.Shapes("Textfeld1").Line.Visible = msoFalse

3. Wie beeinflusst die bedingte Formatierung die Rahmen?
Wenn du Rahmen mit bedingter Formatierung setzt, musst du sicherstellen, dass die Bedingungen in deinem VBA-Code berücksichtigt werden, um die gewünschten Zeilen korrekt ein- oder auszublenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige