Schaltfläche sichtbar wenn Wert in Zelle erreicht
- Nanu
- Beiträge: 58
- Registriert: 14. Okt 2023, 20:20
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Schaltfläche sichtbar wenn Wert in Zelle erreicht
Hola ins Forum,
ich schon wieder. Hoffentlich werde ich nicht nervig.
Eine kurze Frage.
Kann man die Schaltfläche die ich aus den Formularsteuerelementen in die Excel Tabelle einfügen kann sichtbar/unsichtbar machen?
Ich würde die Schaltfläche gerne unsichtbar haben, bei mir heißt sie "Button 5", bis der vorgegebene Wert in Zelle AB20, bei mir 5, erreicht ist.
Solange der Wert kleiner ist bleibt die Schaltfläche verborgen/nicht sichtbar.
Muchas gracias an alle.
Saludos
ich schon wieder. Hoffentlich werde ich nicht nervig.
Eine kurze Frage.
Kann man die Schaltfläche die ich aus den Formularsteuerelementen in die Excel Tabelle einfügen kann sichtbar/unsichtbar machen?
Ich würde die Schaltfläche gerne unsichtbar haben, bei mir heißt sie "Button 5", bis der vorgegebene Wert in Zelle AB20, bei mir 5, erreicht ist.
Solange der Wert kleiner ist bleibt die Schaltfläche verborgen/nicht sichtbar.
Muchas gracias an alle.
Saludos
- d'r Bastler
- Beiträge: 670
- Registriert: 29. Aug 2022, 13:20
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 90 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Moin Nanu,
lustige Idee! wobei ich mit den EinzelControls aus den Entwicklerwerkzeugen kaum Erfahrung habe.
Was sicher geht ist, die Zelle erst ab einem definierten Wert den Doppelklick-Event abfangen zu lassen, der dann das Makro auslöst, das hinter Deiner Schaltfläche steckt.
Alternativ ließe sich auch per Selection_Change eines Userform it einem Button aufrufen. Da müsstes Du zwei Zeilen ändern:
Grüße
lustige Idee! wobei ich mit den EinzelControls aus den Entwicklerwerkzeugen kaum Erfahrung habe.
Was sicher geht ist, die Zelle erst ab einem definierten Wert den Doppelklick-Event abfangen zu lassen, der dann das Makro auslöst, das hinter Deiner Schaltfläche steckt.
Code: Alles auswählen
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Row = 20 And Target.Column = 28 And Target.Value > 4 Then
MsgBox "!" 'hier Dein Makro
End If
End Sub
Code: Alles auswählen
Zeile 1: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Zeile 5: Userform1.Show
- Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
- Nanu
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
- d'r Bastler
- Beiträge: 670
- Registriert: 29. Aug 2022, 13:20
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 90 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
und jetzt noch ein getesteter Nachtrag:
Du baust eine Userform1 mit einem CommandButton1, der folgenden Code erhält:
Den Code im Sheet musst an Deine Anforderung anpassen:
Soll das Makro nur ausgeführt werden, wenn der Wert genau 5 ist, ersetzt Du > 4 durch = 5. Im Moment reagiert er auf jede Änderung ab dem Wert 5.
Saludos
Du baust eine Userform1 mit einem CommandButton1, der folgenden Code erhält:
Code: Alles auswählen
Option Explicit
Private Sub CommandButton1_Click()
Me.Hide 'blendet die USF wieder aus
MsgBox "!" 'hier Dein Makro
End Sub
Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 20 And Target.Column = 28 And Target.Value > 4 Then 'prüft Zelladresse und Wert
UserForm1.Show 'zeigt die USF
End If
End Sub
Saludos
- Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
- Nanu
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
-
- Beiträge: 11
- Registriert: 29. Aug 2022, 20:22
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 10 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Hallo Nanu,
eine Schaltfläche (Formularsteuerelment CommandButton). kann man nicht .Visible = True/False stellen.
Aber man kann, wenn der Zielwert erreicht ist, einen Button mit der Methode .Add erzeugen und den Namen bzw. aussehen, Buttontext sowie Makroverknüpfung mitgeben.
Ein Beispiel für neuen Button mit Name, Buttontext und Verknüpfung mit Makro:
Gruß Uwe
eine Schaltfläche (Formularsteuerelment CommandButton). kann man nicht .Visible = True/False stellen.
Aber man kann, wenn der Zielwert erreicht ist, einen Button mit der Methode .Add erzeugen und den Namen bzw. aussehen, Buttontext sowie Makroverknüpfung mitgeben.
Ein Beispiel für neuen Button mit Name, Buttontext und Verknüpfung mit Makro:
Code: Alles auswählen
Option Explicit
Sub AusgbeMsgBox()
MsgBox "erfolgreich gedrückt"
End Sub
Sub NeuerCmdFstE()
Dim objBtn As Object
Set objBtn = Tabelle1.Buttons.Add(100, 21, 82.5, 23.25)
With objBtn
.Name = "Ziel"
.OnAction = "AusgbeMsgBox"
.Characters.Text = "drück mich"
End With
End Sub
-
- Beiträge: 11
- Registriert: 29. Aug 2022, 20:22
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 10 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
noch was vergessen. Falls der Button wieder verschwinden soll, weil Wert nicht mehr vorhanden ist hilft dies:
Gruß Uwe
Code: Alles auswählen
Sub deleteCmdFstE()
Dim objBtn As Button
For Each objBtn In Tabelle1.Buttons
If InStr(1, objBtn.Name, "Ziel", vbTextCompare) > 0 Then
objBtn.Delete
End If
Next
End Sub
- Folgende Benutzer bedankten sich beim Autor Paul1206 für den Beitrag (Insgesamt 2):
- d'r Bastler, Nanu
- thowe
- Beiträge: 196
- Registriert: 12. Sep 2022, 16:57
- Hat sich bedankt: 78 Mal
- Danksagung erhalten: 67 Mal
- Kontaktdaten:
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Hallo Paul
versuch' mal
versuch' mal
Code: Alles auswählen
Sub TESTToggleVissibilityShape()
Dim btnTargeted As Shape 'Variable: The existing CommandButton as Shape (Formularsteuerelement)
'btnOne ist the Name of the only exisiting Shape (=CommandButton) in this Worksheet
Set btnTargeted = ActiveSheet.Shapes("btnThis")
Debug.Print btnTargeted.Name
'Set some Properties, except the Capiton
'As it is a Shape, there can't be a Caption
'otherwise declare it as OLEObject
With btnTargeted
.Visible = False
End With
If ActiveSheet.Cells(1, 1).Value = "something" Then 'change it
'Do some stuff here
'ie display the Shape or change the Name or change the Cpation
End If
'unset, reset, delete
btnTargeted.Visible = True 'delete/change it in Stage: Production
Set btnTargeted = Nothing
End Sub
- Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag (Insgesamt 3):
- d'r Bastler, Paul1206, Nanu
- Nanu
- Beiträge: 58
- Registriert: 14. Okt 2023, 20:20
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Vorweg erstmal muchas gracias für das rege Interesse und die wie immer tolle Hilfe hier. Ich werde am Wochenende mal alles ausprobieren und dann Rückmeldung geben ob und welches für mich gepasst hat. Nur mal kurz zur Erklärung was ich eigentlich damit bezwecken will.
Ich erstelle gerade einen Montageplan für unsere Setzgeräte (Klammern). Ich möchte gerne unseren Monteuren einen Plan an die Hand geben wie und in welcher Reihenfolge die Geräte montiert werden. Das bedeutet.
Das bekomme ich soweit ja mit dem Makrorekorder hin. Was mir fehlt, oder gefehlt hat, war das sichtbar/unsichtbar des Buttons machen
Muchas garcias a todos
Nanu
Ps.: Wenn es jemanden interessiert
TecnoMetales
Ich erstelle gerade einen Montageplan für unsere Setzgeräte (Klammern). Ich möchte gerne unseren Monteuren einen Plan an die Hand geben wie und in welcher Reihenfolge die Geräte montiert werden. Das bedeutet.
- Sie wählen das Gerät aus
- Dadurch wird der erste Sheet eingeblendet und wenn die 5 "neuen Kontrollkästchen (unter EINFÜGEN)" aktiviert sind, erst dann wird der Button zum weitergehen sichtbar. Damit gehen sie dann zu Schritt 2 und der erste Schritt wird ausgeblendet
Das bekomme ich soweit ja mit dem Makrorekorder hin. Was mir fehlt, oder gefehlt hat, war das sichtbar/unsichtbar des Buttons machen
Muchas garcias a todos
Nanu
Ps.: Wenn es jemanden interessiert
TecnoMetales
-
- Beiträge: 11
- Registriert: 29. Aug 2022, 20:22
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 10 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Hallo thowe,
Asche auf mein Haupt. Klar geht es auch objBtn As Button und nicht nur übers Shape.
War wohl heut Vormittag beim Zaunstreichen zu lang in der Sonne.
Gruß Uwe
Asche auf mein Haupt. Klar geht es auch objBtn As Button und nicht nur übers Shape.
War wohl heut Vormittag beim Zaunstreichen zu lang in der Sonne.
Gruß Uwe
- d'r Bastler
- Beiträge: 670
- Registriert: 29. Aug 2022, 13:20
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 90 Mal
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Moin Uwe,
erst Grillparty, dann Zaunstreichen ... du machst Sachen! Jetzt aber schnell Haarewaschen! Denn Asche auf dem Haupt absorbiert Hitze mehr als graue Haare
lg
erst Grillparty, dann Zaunstreichen ... du machst Sachen! Jetzt aber schnell Haarewaschen! Denn Asche auf dem Haupt absorbiert Hitze mehr als graue Haare
lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
-
- Beiträge: 30
- Registriert: 30. Mai 2024, 19:42
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Schaltfläche sichtbar wenn Wert in Zelle erreicht
Hallo zusammen,
ich würde das trotzdem ganz simpel über das Shape machen. Da ist es egal, ob es sich um ein Formularsteuerelement oder ein ActiveX-Steuerelement handelt. Der Shape-Container funktioniert mit beidem. Die Frage ist vielmehr, wie denn der Wert 5 in AB20 erreicht wird. Über eine manuelle Eingabe oder über eine Formel?
Bei manueller Eingabe käme dieser Code ins entsprechende Tabellenmodul.
Bei Formelberechnung müsstest du den Code entsprechend ins Calculate-Ereignis schreiben. Ist ungünstiger, weil der Code dann bei jeder Neuberechnung des Arbeitsblattes ausgeführt wird, was zu Verzögerungen im Arbeitsablauf führen kann.
Gruß Mr. K.
ich würde das trotzdem ganz simpel über das Shape machen. Da ist es egal, ob es sich um ein Formularsteuerelement oder ein ActiveX-Steuerelement handelt. Der Shape-Container funktioniert mit beidem. Die Frage ist vielmehr, wie denn der Wert 5 in AB20 erreicht wird. Über eine manuelle Eingabe oder über eine Formel?
Bei manueller Eingabe käme dieser Code ins entsprechende Tabellenmodul.
Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("AB20")) Is Nothing Then
If Range("AB20") < 5 Then
Me.Shapes("Button 5").Visible = False
Else
Me.Shapes("Button 5").Visible = True
End If
End If
End Sub
Gruß Mr. K.
- Folgende Benutzer bedankten sich beim Autor xlKing für den Beitrag (Insgesamt 3):
- Nanu, thowe, d'r Bastler
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste