Registriert seit: 03.02.2021
Version(en): Standart
Hallo,
ich hoffe hier kann mir jemand weiterhelfen, denn ich habe viel gesucht, aber nie so das ganz richtige gefunden, das auch funktioniert. Irgendwie steh ich nämlich gerade total auf dem Schlauch…
Die Situation ist folgende:
Ich hab einen Button erstellt und hab ihm das Makro zugeteilt: Sub erledigt_2() ' erledigt_2 Makro Range("H11").Select ActiveCell.FormulaR1C1 = "ü" Range("H12").Select End Sub Demnach führt er beim Klick immer aus, dass in Feld "H11" ein "ü" erscheint und er anschließend auf "H12" springt. Nun zum Problem: Ich hätte aber gerne, dass der Button nur angezeigt wird, wenn irgendetwas in dem Feld "F11" steht. Steht dort allerdings nichts, dann sollte der Button unsichtbar sein, bis man etwas einträgt.
Zur Info: Die Excel-Datei hat mehrere Seiten. Was muss ich jetzt aber genau in dem Entwickler-Tool (Visual Basic-Editor) wo eingeben? Und wie stell ich die Verbindung zu genau dem Button her, den ich ein-/ausblenden möchte. Vielen Dank schon einmal für Eure Hilfe.
Registriert seit: 12.06.2020
Version(en): 2024, 365business
Hallo,
es gibt verschiedene Sorten Buttons. Activex oder Formularsteuerelement Die werden auch unterschiedlich angesprochen. Und ob die sichtbar sind oder nicht muß irgendwo geprüft werden. Und am besten bei einer Änderung des Zellinhaltes. Dafür kann man Eventroutinen benutzen.
Worksheet_Change z.b. wäre da gut.
Bleibt für mich aber die Frage warum man einen Button benötigt, der nicht anders macht als die normale Excelumgebung schon mitbringt.
gruß
rb
Registriert seit: 29.09.2015
Version(en): 2030,5
Zitat:Die Excel-Datei hat mehrere Seiten. Kann ich nicht bestätigen
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo warum bitte einen Button unsichbar machen über Worksheet_Change? Damit kann man direkt das "ü" in die Zelle eingeben! Ob man anschliessend noch Zelle H12 anspringen muss ist fraglıch? Glaube ich nicht. Dieser Code stammt sicher von einem Makro Recorder! Unbereinigt!Diesen Code muss man ins Modul des Tabellenblatt eingeben wo er altiv sein soll. Oder im Modul "ThisWorkbook" für alle Tabellen. Dann aber bitte mit diesem Code: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Andere Frage, wie löschst du die Zelle H11 wieder? Von Hand? Wenn F11 wieder leer ist? mfg Gast 123 Code: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Value = "" Then Exit Sub
On Error GoTo Fehler If Target.Address = "$F$11" Then Application.EnableEvents = False Range("H11").Value = "ü" Range("H11").Select End If Fehler: Application.EnableEvents = False End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
03.02.2021, 16:41
(Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2021, 16:41 von schauan.)
Hallöchen, Du kannst das auch so programmieren, das ein Doppelklick auf die Zelle reicht. Dann sparst Du Dir den Button. Der Code kommt in das Codemodul vom Tabellenblatt, wo er wirken soll. Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$H$11" Then Target.Value = "ü" Cancel = True End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.02.2021
Version(en): Standart
Hallo,
erstmal danke für die Antworten. Und vielleicht steh ich auch so sehr auf dem Schlauch, dass es eine einfachere Lösung gibt...
Die Erklärung, warum das derzeitige Makro nach dem einfügen des "Ü" auf "H12" weiterspringt, erläutere ich jetzt nicht weiter, weil das einfach zu lange dauern würde und mit dem eigentlichen Problem nichts zu tun hat. Dies ist einfach so gewollt und kein "unbereinigtes Makro"
Nur soviel zur Benutzung:
Grundsätzlich ist das eine "Problem-Lösungs-Tabelle", in die viele Menschen Probleme reinschreiben, die sie selbst nicht lösen können bzw. dürfen. Deshalb gibt es für diese Problemlösungen, eine kleine Gruppe die sich darum kümmert.
Demnach kann zwar jeder von dem eigenen Platz etwas mit der Tastatur reinschreiben, die Lösungen werden aber in der kleinen Gruppe, direkt an einem großen Touch-Screen-Bildschirm besprochen, eingeteilt und dann gelöst. Dort ist aber keine Tastatur, denn alle sonstigen Dinge können per Touch-Screen viel schneller und einfacher erledigt werden. (Dazu wird mit anderen Buttons nicht nur ein "Ü" sondern mehr eingetragen bzw. sogar gleich mehrere Funktionen ausgeführt).
Deshalb werden jetzt eben mehrere Buttons benötigt, die z.B. zeigen: - An was wird gearbeitet - Wo gibt es noch ein Problem - wie ist der aktuelle Stand - was ist gelöst und abgeschlossen - ...usw. (Deshalb geht das mit dem Doppelklick auch nicht)
Somit erkennt sofort jeder Mensch, wer an seinem Problem arbeitet und wie weit es fortgeschritten ist oder wo es noch Probleme gibt.
Dass nun in einer Tabelle mit zig Einträgen, aber die Übersicht gewahrt wird, sollen jetzt nicht direkt neben jeder Zeile die Buttons dargestellt werden. Diese soll man eben erst sehen, wenn jemand in "F11" etwas eingetragen hat.
Dies könnte ich jetzt noch weiter ausführen, warum nach dem eintragen des "Ü" das nächste Feld angewählt wird oder warum dies per Touch-Screen leichter und schneller geht wie mit einer Tastatur, aber am Ende habe ich einen Forum-Eintrag für ein Problem erstellt und demnach sollte dort nur das Problem behandelt werden und nicht das ganze drum herum.
Vielleicht irre ich mich, aber genau deshalb fand ich, dass ich einfach den Butten wähle, der am kürzesten und einfachsten ist, da ich ja nur eine Lösung brauche, die ich dann auf alle Buttons anwenden kann. Wenn es aber gewünscht ist, kann ich gerne alle anderen Buttons incl. der Makros auflisten und was genau wo passiert, doch dies würde alles nur viel unübersichtlicher machen und hätte letztlich mit dem Problem nichts zu tun.
Am Ende würde ich nur gerne einen Button ausblenden solange nichts in Feld "F11" steht.
Grundsätzlich wusste ich auch, dass dieser Befehl direkt in das Modul, von dem Tabellenblatt, eingetragen werden kann, in dem es aktiv ist, aber eben nicht, wie dieser Befehl genau aussieht bzw. wie ich diesen Befehl einem bestimmten Button zuweise. Da ich aber nicht wusste, ob es auch einen Befehl gibt, den man direkt in das Button-Makro einfügen kann, habe ich das Makro des Buttons mit eingefügt. Einfach falls man innerhalb des Makros etwas ändern müsste, dass man dann direkt am Makro hätte zeigen können, wo und wie das eingefügt werden müsste.
Viele Grüße
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo, versuche es mal so: Code: Option Explicit
Private Sub Worksheet_Activate() CommandButton1.Visible = False End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Len(Range("F11")) > 0 Then CommandButton1.Visible = True End Sub
Private Sub CommandButton1_Click() Range("H11") = "ü" Range("H12").Select End Sub
Auf dem Tabellenblatt legst du eine Schaltfläche aus den ActiveX-Objekten an.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin! Viel Text, aber wir wissen immer noch nicht, welcher Art der Button ist!
Und ohne Wertung und nur am Rande: Selbstverständlich ist dies unbereinigter Rekorder-Code: Range("H11").Select ActiveCell.FormulaR1C1 = "ü" .FormulaR1C1 ist die falsche Methode, .Select ist überflüssig! Das geht so: Range("H11").Value = "ü"
Verrätst Du uns mehr zum Button?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 03.02.2021
Version(en): Standart
(06.02.2021, 12:01)RPP63 schrieb: Und ohne Wertung und nur am Rande: Selbstverständlich ist dies unbereinigter Rekorder-Code: Range("H11").Select ActiveCell.FormulaR1C1 = "ü" .FormulaR1C1 ist die falsche Methode, .Select ist überflüssig! Das geht so: Range("H11").Value = "ü"
Verrätst Du uns mehr zum Button?
Gruß Ralf Sorry, falls ich mich falsch ausgedrückt habe. Da in der Antwort geschrieben wurde, dass es fraglich ist, ob man nach dem einfügen des "ü" noch auf die Zelle "H12" springen muss, wollte ich dadurch nur ausdrücken, dass dies eben schon gewollt ist. Die Info über den Button reiche schnellstmöglich nach.Danke schon mal für Eure Hilfe und die Zeit, die Ihr Euch zum antworten genommen habt.
Registriert seit: 03.02.2021
Version(en): Standart
Hallo Excel-Community,
heute hat es bei mir selbst klick gemacht und so hab ich es alleine und ganz leicht hinbekommen.
Hab es mit dem "invisible" makro gemacht.
Demnach ist mein Problem gelöst.
Dennoch vielen Dank für Eure Hilfe und die schnellen Antworten. Danke an alle und viele Grüße für Euch
|