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

Schaltfläche bedingt sperren

Forumthread: Schaltfläche bedingt sperren

Schaltfläche bedingt sperren
08.05.2007 13:30:51
Henner
Hallo zusammen,
ich möchte eine Schaltfläche bedingt sperren. Wenn in einer bestimmten Zelle ein definierter Wert eingetragen wird, soll die Schaltfläche freigeschaltet und dementsprechend bei Klick das zugewiesene Makro ausgeführt werden. Anbei noch ein paar Infos die evtl. Relevant sind:
Dateiname: Mietverwaltung.xls
Tabellenname: SI
Schaltflächenbezeichnung: Schaltfläche_236
Bestimmte Zelle: A1
Da ich mich in VBA nicht besonders gut auskenne, sondern alle meine Makros über den Recorder eingerichtet habe, würde ich mich über eine für einen Laien verständliche Beschreibung sehr freuen. Vielen Dank im Vorraus! Gruß aus Lünen

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 14:10:00
Niels
Hi Henner,
gehe in den VBA Editor ,doppelklick auf Tabelle1(SI) und füge folgenden Code da ein.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then End
If Target.Value = "1" Then Worksheets("SI").Schaltfläche_236.Enabled = True: End
Worksheets("SI").Schaltfläche_236.Enabled = False
End Sub


Zeile1: Wird jedesmal bei Änderungen in der Tabelle1(SI) aufgerufen.
Zeile2: Prüft ob die Änderung in Zelle A1 gemacht wurde ansonsten wird der Prozess beendet.
Zeile3: Wenn in Zelle A1 eine 1 steht wird die Schaltfläche aktiviert und der Prozess beendet.
Zeile4: Schaltfläche wird deaktiviert.
Gruß Niels

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 14:21:23
Rudi
Hallo Niels,
hast du das getestet?
Wenn das Ding 'Schaltfläche_236' heißt, stammt sie vermutlich aus Symbolleiste Formular, ist somit ein Shape und besitzt keine Enabled-Eigenschaft.
Imho kann man nur im zugewiesenen Code checken, was in A1 steht und entsprechend reagieren.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 14:49:00
Henner
Hallo Niels & Rudi,
schonmal vielen Dank fpr eure Unterstützung. Ich habe den Code so wie von Rudi wie folgt eingefügt: Datei geöffnet, VBA Editor geöffnet, Doppelklick auf Tabelle24 (SI) und dort den Text rein. Wenn ich jetzt die Zelle A1 leer lasse, funktioniert der Button wie gewohnt, wenn ich bei A1 eine "1" reinsetzen möchte, bekomme ich eine Fehlermeldung:Laufzeitfehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht. Was nun?

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 14:49:29
Niels
Hi Rudi,
hatte mich schon gewundert warum "Schaltfläche_236" da stand. Mit der Befehlsschaltfläche (CommandButton) geht das aber.
Gruß Niels

AW: Schaltfläche bedingt sperren
08.05.2007 14:48:28
Henner
Hallo Niels & Rudi,
schonmal vielen Dank fpr eure Unterstützung. Ich habe den Code so wie von Rudi wie folgt eingefügt: Datei geöffnet, VBA Editor geöffnet, Doppelklick auf Tabelle24 (SI) und dort den Text rein. Wenn ich jetzt die Zelle A1 leer lasse, funktioniert der Button wie gewohnt, wenn ich bei A1 eine "1" reinsetzen möchte, bekomme ich eine Fehlermeldung:Laufzeitfehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht. Was nun?

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 14:54:40
Rudi
Hallo,

Ich habe den Code so wie von Rudi wie folgt eingefügt


Das war Niels!
Zum Fehler: Siehe mein Kommentar.
Du musst einen Button aus der Steuerelemente-Tollbox nehmen, dann klappt Niels Code
Oder an den Anfang des zugewiesenen Makros:
If Range("A1")"" then exit sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 15:01:00
Henner
Habe jetzt die Zeile "If Range("A1")"" then exit sub" vor das Mekor der Schaltfläche kopiert - gleicher Fehler. Wie läuft das mit dieser Toolbox?

AW: Schaltfläche bedingt sperren
08.05.2007 15:15:00
Rudi
Hallo,

gleicher Fehler


Du musst den Code von Niels wieder löschen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 15:20:00
Henner
Den Code von Niels habe ich jetzt komplett gelöscht, vor das auszuführende Makro der Schaltfläche habe ich deine Zeile geschrieben (If Range("A1")"" then exit sub). Der Button funktioniert aber jetzt wie vorher ohne Abhängigkeit des Zelleninhalts von A1. Ich hoffe ich nerve noch nicht, möchte doch nur das es klappt ;-) Danke für die Mithilfe!!

Anzeige
AW: Schaltfläche bedingt sperren
08.05.2007 15:55:00
Niels
Die Toolbox bekommst du in Excel über:
Ansicht - Symbolleisten - Steuerelement-Toolbox
Dann tausche deine Schaltfläche_236 gegen die "Befehlsschaltfläche(CommandButton)" aus.
Mit der rechten Maustaste den Button anklicken - Eigenschaften und in dem neuen Fenster unter "Name" trägst du wieder "Schaltfläche_236" ein.
Dann einen Doppelklick auf den Button und da schreibst du dann den Namen des Makros rein das ausgeführt werden soll.

Anzeige
AW: Schaltfläche bedingt sperren
09.05.2007 02:54:08
Henner
Leider klappt das immernoch nicht. Ich habe jetzt die folgenden Zeilen in den Editor kopiert nachdem ich die Tabelle24 (SI) angewählt habe:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then End
If Target.Value = "1" Then Worksheets("SI").Schaltfläche_236.Enabled = True: End
Worksheets("SI").Schaltfläche_236.Enabled = False
End Sub


Dann habe ich mir den Button über die Toolbox geholt, diese umbenannt in "Schaltfläche_236" und dieser Schaltfläche durch Doppelklicken ein Makro zugewiesen. Was mich etwas wundert ist, dass beide Zeilen, also die obigen und mein Makro, auf der gleichen Seite untereinander im Editor stehen, getrennt durch eine horizontale Linie - ist das richtig?! Danke für jede Hilfe!! Gruß Henner

Anzeige
AW: Schaltfläche bedingt sperren
09.05.2007 13:48:00
Niels
Hallo Henner,
das die beiden Einträge auf der gleichen Seite sind ist ok.
Warum das jetzt aber nicht funktioniert weiss ich leider auch nicht.
Kannst du mir die Datei eventuell mal hochladen oder zu mailen? Dann schau ich da mal rein was da los ist.
Meine Email: thomsen@glimex.de
Gruß Niels
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Schaltfläche in Excel bedingt sperren


Schritt-für-Schritt-Anleitung

  1. Öffne die Datei: Starte Excel und öffne deine Datei Mietverwaltung.xls.

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

  3. Tabelle auswählen: Doppelklicke auf Tabelle1 (SI) im Projekt-Explorer.

  4. Code einfügen: Füge den folgenden VBA-Code in das Code-Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address <> "$A$1" Then Exit Sub
       If Target.Value = "1" Then 
           Worksheets("SI").Schaltfläche_236.Enabled = True
       Else
           Worksheets("SI").Schaltfläche_236.Enabled = False
       End If
    End Sub
  5. Befehlsschaltfläche hinzufügen: Gehe zu Ansicht > Symbolleisten > Steuerelement-Toolbox und füge eine Befehlsschaltfläche (CommandButton) hinzu.

  6. Schaltfläche umbenennen: Klicke mit der rechten Maustaste auf die Schaltfläche, wähle Eigenschaften und ändere den Namen in Schaltfläche_236.

  7. Makro zuweisen: Doppelklicke auf die Schaltfläche und schreibe den Namen des Makros, das du ausführen möchtest.


Häufige Fehler und Lösungen

  • Laufzeitfehler 438: Dies kann auftreten, wenn du eine Schaltfläche aus der Symbolleiste „Formular“ anstelle einer „Befehlsschaltfläche“ verwendest. Stelle sicher, dass du die richtige Schaltfläche verwendest.
  • Schaltfläche wird nicht aktiviert: Überprüfe, ob der Code korrekt in Tabelle1 (SI) eingefügt wurde und dass die Zelle A1 tatsächlich den Wert „1“ enthält.
  • Fehler bei der Makrozuweisung: Stelle sicher, dass das Makro, das du der Schaltfläche zugewiesen hast, auch existiert.

Alternative Methoden

  • Du kannst die Schaltfläche auch über die „Entwicklertools“ erstellen, die du in den Excel-Optionen aktivieren kannst. Dies gibt dir mehr Optionen zur Anpassung der Schaltfläche.
  • Anstelle von VBA kannst du auch Datenvalidierung verwenden, um die Eingabe in Zelle A1 zu steuern, wenn du keine Programmierung nutzen möchtest.

Praktische Beispiele

Ein einfaches Beispiel für die Verwendung der bedingten Schaltfläche in deiner Mietverwaltung Excel-Datei könnte so aussehen:

  1. Wenn in Zelle A1 „1“ eingegeben wird, wird die Schaltfläche aktiv und führt ein Makro aus, das beispielsweise eine Rechnung generiert.
  2. Wenn die Zelle leer bleibt oder einen anderen Wert hat, wird die Schaltfläche deaktiviert, wodurch ein versehentliches Auslösen des Makros verhindert wird.

Tipps für Profis

  • Halte deinen Code sauber und kommentiere ihn, damit du später leichter nachvollziehen kannst, was er bewirkt.
  • Teste die Schaltfläche gründlich, um sicherzustellen, dass sie in allen möglichen Szenarien wie gewünscht funktioniert.
  • Wenn du regelmäßig mit mietverwaltung excel arbeitest, überlege, wie du den Code automatisieren kannst, um den Arbeitsablauf zu vereinfachen.

FAQ: Häufige Fragen

1. Warum funktioniert der Code nicht wie erwartet?
Stelle sicher, dass du eine Befehlsschaltfläche verwendest und dass der Code im richtigen Tabellenblatt eingefügt wurde.

2. Muss ich VBA kennen, um das zu machen?
Ein grundlegendes Verständnis von VBA ist hilfreich, aber die oben genannten Schritte sind einfach genug, um sie auch ohne tiefgehende Kenntnisse zu befolgen.

3. Kann ich auch andere Zellen zur Steuerung der Schaltfläche verwenden?
Ja, du kannst die Adresse der Zelle in der If-Bedingung anpassen, um andere Zellen für die Bedingung zu verwenden.

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