Registriert seit: 06.03.2017
Version(en): 2007
Hallo.
Ich bin ein wenig am rumprobieren mit Kontrolkästchen und Optionsfeldern.
Jetzt habe ich Versucht, dadurch ein Makro auszuführen.(ohne VBA Kenntnisse)
Das direkte Verbinden von Feld und Makro is ja klar.
Habe dann etwas gesucht im Netz und stieß ich zb auf:
=WENN(F5=“WAHR“;Makro1_start();“nichts“) um auf des Ergebniss der Eingaben zu reagieren.
Aber irgendwie geht das nicht. Mache ich da was falsch?
Registriert seit: 04.04.2017
Version(en): 2013
Hallo,
grundsätzlich unterscheidet man erstmal zwischen Formularsteuerelementen und ActiveX-Elementen.
Bei Ersterem machst Du einfach einen Rechtsklick auf die CheckBox unf klickst auf Makro zuweisen. Das wird dann bei jedem Klick ausgeführt.
Bei einem ActiveX-Steruerelement machst Du im Design Mode einen Doppelklick auf das entsprechende Element und kommst in den Editor. Hier kannst Du auf das entsprechende Event reagieren.
Registriert seit: 06.03.2017
Version(en): 2007
Wie ich einem Steuerelement ein Makro zuweise ist mir klar. Schrieb ich ja auch schon.
Meine Frage hat auch nur Bedingt was mit den Steuerelementen zu tun.
Ich möchte zb wenn in Zelle I5 eine 5 erscheint das aufgenommene Makroxy ausgeführt wird.
Und das ohne in VBA was programieren zu müssen.
Registriert seit: 06.03.2017
Version(en): 2007
26.04.2017, 13:19
(Dieser Beitrag wurde zuletzt bearbeitet: 26.04.2017, 13:19 von M.Wichmann.)
Wieso funktioniert der:
Code:
Public Function Startmakro() As String
Call Anzeige
Startmakro = "Gestartet."
End Function
Sub Anzeige()
MsgBox "Makro wurde gestartet"
End Sub
und der nicht?
Code:
Public Function Startmakro() As String
Call Anzeige
Startmakro = "Gestartet."
End Function
Sub Anzeige()
Range("C7").Select
ActiveCell.FormulaR1C1 = "1"
Range("D7").Select
ActiveCell.FormulaR1C1 = "2"
Range("E7").Select
ActiveCell.FormulaR1C1 = "3"
Range("F7").Select
ActiveCell.FormulaR1C1 = "4"
Range("F8").Select
End Sub
Läuft das Makro zwar ab, aber kann keine Eintragungen machen?? Wenn ich das Makro per Hand starte macht er die Einträge.
Registriert seit: 21.06.2016
Version(en): 2021
Hallo M,
siehe
Einschränkungen von Aktionen in benutzerdefinierten Funktionenhttp://www.xlam.de/xlimits/customfunctions.htm
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 29.09.2015
Version(en): 2030,5
Vielleicht ein Excel/VBA-Grundlagenbuch lesen ?
Registriert seit: 06.03.2017
Version(en): 2007
Sehr schade, wäre ja auch zu schön gewesen.
Kann mir dann evtl wer sagen, wie ich in VBA selber eine Zelle auf einen bestimmten Inhalt abfrage und dann dadurch das Makro auslöse?
Also auch unter dem Schema wenn Zelle diesen Inhalt hat mach das, sonst warte
Registriert seit: 21.06.2016
Version(en): 2021
Hallo M.
natürlich kannst du in einem Makro eine Aktion unter der Bedingung eines bestimmten Zelleintrages durchführen.
Du must nur entscheiden, wann das Makro ausgeführt werden soll.
Entweder explicit (im Normalfall durch einen Button) oder
ereignisgesteuert (zb. bei einer manuellen oder berechneten Änderung einer Zelle).
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 06.03.2017
Version(en): 2007
Ich habe heute beim googlen schon was gesehn, aber finde das nicht mehr.
Kann man in VBA die Formeln ähnlich den normalen machen??
Wenn ja, wie muss ich das eingeben das er zb Zelle F5 überwacht und bei übereinstimmung das Makro xy ausführt?
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo
das gehört in das Tabellenblatt
und reagiert auf manuelle Eintragung in Zelle F5
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F5")) Then
If Range("F5").Value = "irgendwas" Then
Call DeinMakkro_XY
End If
End If
End Sub
sollte sich der Wert in F5 durch eine Formel ändern wäre eventuell das Worksheet_Calculate-Ereignis das richtige
aber dazu lässt du dich ja nicht aus
MfG Tom