Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Buttons ein- und ausblenden

Buttons ein- und ausblenden
23.05.2017 09:32:38
Lisa
Hallo zusammen,
ich möchte in meiner Anwendung gerne einige Buttons ein- und ausblenden.
Beispielsweise gibt es die Buttons Schreibschutz aktivieren & Schreibschutz deaktivieren. Wenn der Schreibschutz aktiviert ist, soll nur noch der Button für Schreibschutz deaktivieren angezeigt werden (oder es kann sich gerne auch die Beschriftung des Buttons ändern).
Ein ähnliches Beispiel habe ich hier gefunden:
https://www.herber.de/forum/archiv/884to888/884839_Formular_Steuerelemente_einu_ausblenden.html
Problem ist, dass ich keine Active-X Steuerelemente einbinden kann, sondern nur die Formularsteuerelemente. Ich habe bisher keine Möglichkeit gefunden, diese über VBA zu steuern.
Ein weiteres Problem ist, dass ich den Toggle-Button in diesen Formularsteuerelementen gar nicht gefunden habe.
Könnt ihr mir weiterhelfen?
Vielen Dank und liebe Grüße
Lisa
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons ein- und ausblenden
23.05.2017 09:45:38
Rainer
Hallo Lisa,
probiere mal:

Sub test()
Shapes("Schaltfläche 1").Visible = Not Shapes("Schaltfläche 1").Visible
End Sub
Mit dem Toggle-Button hast du vermutlich Pech, den gibt es (meines bescheidenen Wissens) nur mit ActiveX. Aber mit einer Checkbox(Kontrollkästchen) hat man doch eine vergleichbare Funktionalität?
Gruß,
Rainer
Anzeige
AW: Buttons ein- und ausblenden
23.05.2017 09:53:11
Lisa
Hallo Rainer,
dein Code funktioniert leider nicht, der Debugger hält bei "Shapes" an.
With Worksheets("Übersicht")
'.DrawingObjects("Vorschriften ausblenden").Visible = False
'.Shapes("Vorschriften ausblenden").DrawingObject.Visible = False
End With
..klappt übrigens auch nicht.
Anzeige
AW: Buttons ein- und ausblenden
23.05.2017 10:17:51
Rainer
Hallo Lisa,
Hast du den Code in einem Modul probiert?
Dort musst du das Worksheet definieren. Wenn es im Code der Tabelle steht, dann nicht.

Sub test()
With Worksheets("Tabelle1")
.Shapes("Schaltfläche 1").Visible = Not .Shapes("Schaltfläche 1").Visible
End With
End Sub
Außerdem musst du beachten, dass der BOOLEAN Wert für Shapes.Visible

msoTrue 
oder

msoFalse
ist. Also so:

.Shapes("Vorschriften ausblenden").Visible = msoFalse
Gruß,
Rainer
Anzeige
AW: Buttons ein- und ausblenden
23.05.2017 09:56:12
Daniel
Hi
die Formular-Buttons sind auch nur einfache Grafikelemente (Shapes).
Im Prinzip kannst du jedes Grafikelement als Button verwenden, indem du ihm ein Makro zuweist.
zum Ändern des Textes gibt es zwei wege:
per Makro: (Buttonname entsprechend eintragen):
ActiveSheet.Shapes("Button 1").TextFrame.Characters.Text = "xxx"
alternativ kannst du auch den Button mit einer Zelle verknüpfen, indem du den Button markierst und in die Bearbeitungszeile den Zellbezug auf eine Zelle einträgst.
Dann wird der Inhalt dieser Zelle als Buttontext angezeigt.
Jetzt kannst du diese Zelle ändern oder dort eine entsprechende Formel hinterlegen.
Gruß Daniel
Anzeige
AW: Buttons ein- und ausblenden
23.05.2017 10:07:56
Lisa
Hallo Daniel,
dein Vorschlag funktioniert leider auch nicht, es wird ein Laufzeitfehler angezeigt.
Der Zellbezug ist ein guter Hinweis, wenn es per VBA gar nicht funktioniert werde ich darauf zurück kommen. Erst mal werde ich aber weiterhin versuchen die Buttons über VBA zu steuern, das wäre mir lieber...
Grüße
Lisa
Anzeige
AW: Blattschutz
23.05.2017 10:19:24
Daniel
Hi
bei mir funktioniert es.
wenn du einen Laufzeitfehler bekommst, hast du was falsch gemacht.
was du falsch gemacht hast, kann ich dir nicht sagen, weil ich nicht weiß, was du gemacht hast und welche Fehlermeldung du bekommen hast.
Wenn du den Blattschutz aktiviert hast, solltest du bedenken, dass deine Objekte auch geschützt sind.
Du musst dann entweder im Code den Schutz aufheben (und hinterher wieder setzen) oder beim Aktivieren des Blattschutzes das Häkchen bei "Objekte bearbeiten" setzen.
Wenn beides nicht geht, eben über die Zellverknüpfung.
Für die Zelle kannst du ja das Häkchen bei "Gesperrt" rausnehmen und dann den Zellwert trotz Blattschutz ändern.
Die Zelle kann ja ausgeblendet sein oder sich auf einem anderen Blatt befinden.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Buttons ein- und ausblenden in Excel


Schritt-für-Schritt-Anleitung

Um Buttons in Excel ein- und auszublenden, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und dann auf Modul.
  3. Gib den folgenden Code ein:
    Sub ToggleButtonVisibility()
       With Worksheets("Tabelle1")
           .Shapes("Schaltfläche 1").Visible = Not .Shapes("Schaltfläche 1").Visible
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu deiner Excel-Datei zurück.
  5. Füge einen Button hinzu: Gehe zu Entwicklertools > Einfügen > Formularsteuerelemente und wähle Button.
  6. Weise dem Button das Makro zu, indem du mit der rechten Maustaste auf den Button klickst und Makro zuweisen wählst.

Mit diesem VBA-Skript kannst du den Button ein- und ausblenden, indem du einfach auf den Button klickst.


Häufige Fehler und Lösungen

  • Fehler: "Shapes nicht gefunden"

    • Stelle sicher, dass der Name des Buttons korrekt ist und dass du den richtigen Arbeitsblattnamen verwendest.
  • Fehler bei aktiviertem Blattschutz

    • Wenn der Blattschutz aktiv ist, musst du den Schutz aufheben, bevor du das Makro ausführst. Du kannst dazu im Code den Schutz temporär aufheben:
      Worksheets("Tabelle1").Unprotect "deinPasswort"
      ' Code zum Ausblenden hier
      Worksheets("Tabelle1").Protect "deinPasswort"

Alternative Methoden

Wenn du keinen VBA-Code verwenden möchtest, kannst du auch die Zellverknüpfung nutzen:

  1. Erstelle eine Zelle, die den Buttontext steuert (z.B. "Button aktivieren").
  2. Verknüpfe den Button mit dieser Zelle: Klicke mit der rechten Maustaste auf den Button und wähle "Text bearbeiten".
  3. Gib den Zellbezug ein (z.B. =A1), sodass der Buttontext automatisch aktualisiert wird, wenn du den Zellwert änderst.

Praktische Beispiele

Hier sind einige Beispiele, wie du die Buttons in Excel ausblenden kannst:

  1. Ein und Ausblenden eines Buttons:

    Sub HideButton()
       Worksheets("Tabelle1").Shapes("Button 1").Visible = False
    End Sub
  2. Schaltflächen umbenennen:

    Sub RenameButton()
       ActiveSheet.Shapes("Button 1").TextFrame.Characters.Text = "Neuer Text"
    End Sub
  3. Zeilen einklappen mit einem Button:

    Sub CollapseRows()
       Rows("2:5").Hidden = Not Rows("2:5").Hidden
    End Sub

Tipps für Profis

  • Verwende Variablen für Buttonnamen, um deinen Code flexibler zu gestalten. So kannst du denselben Code für verschiedene Buttons verwenden.
  • Nutze das With-Statement, um die Lesbarkeit deines Codes zu erhöhen und die Ausführungsgeschwindigkeit zu verbessern.

FAQ: Häufige Fragen

1. Kann ich Active-X-Steuerelemente verwenden? Ja, aber in diesem Tutorial konzentrieren wir uns auf Formularsteuerelemente, da diese einfacher zu handhaben sind.

2. Wie kann ich mehrere Buttons gleichzeitig ausblenden? Du kannst eine Schleife verwenden, um durch alle Buttons zu iterieren und sie auszublenden:

Sub HideAllButtons()
    Dim shp As Shape
    For Each shp In Worksheets("Tabelle1").Shapes
        If shp.Type = msoFormControl Then
            shp.Visible = False
        End If
    Next shp
End Sub

3. Was ist der Unterschied zwischen Visible und Enabled? Visible steuert, ob das Element sichtbar ist, während Enabled bestimmt, ob das Element aktiv ist und angeklickt werden kann.

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