Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro starten durch WENN Formel
#1
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?
Antworten Top
#2
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.
Gruß Jonas
Antworten Top
#3
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.
Antworten Top
#4
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.
Antworten Top
#5
Hallo M,

siehe Einschränkungen von Aktionen in benutzerdefinierten Funktionen

http://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.





Antworten Top
#6
Vielleicht ein Excel/VBA-Grundlagenbuch lesen ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
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
Antworten Top
#8
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.





Antworten Top
#9
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?
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste