Gibt es eigentlich eine Möglichkeit ein Makro über eine Formel aufzurufen
wie z.B.
=WENN(F4="richtig";run Makro();"kein Makro")
In der Hilfe habe ich nichts dazu gefunden.
MfG
Bernd Augustin
Es kommt drauf an, was es für eine "Makro" ist. Eine VBA-Funktion die in
einem normalen Moduls gespeichert ist kannst Du aufrufen, bspw. wie jede
Excel-Funktion:
=WENN(F4="richtig";MEINEFUNKTION();"")
Prozeduren kannst Du meines Wissens so nicht aufrufen und auch die
FUnktionen müssen bestimmte Voraussetzungen erfüllen. Sie dürfen bspw. nicht
die aktive Zelle wechseln, keine Markierungen vornehmen, keine Arbeitsmappen
öffnen etc.
Alle VBA-Funktionen, die du direkt als Formel in die Zelle einfügen kannst,
mit =MEINEFUNKTION() und die dann nicht #Fehler oder #Wert liefern, können
auch in der WENN-Funktion aufgerufen werden.
mfg Helma Spona
--
Mfg Helma Spona
http://www.helma-spona.de
http://www.browser-bugs.de
http://www.edv-sk.de
Das mit dem Funktionsaufruf war mir schon bekannt.
Was ich gesucht hätte ist tatsächlich der Aufruf einer beliebigen Prozedur.
Schade, daß dies nicht geht. Damit könnte man viel anstellen.
Freundliche Grüße aus der Pfalz.
http://www.bernd-augustin.de
kostenlose AddIns für Excel
hallo Bernd,
möglicherweise hilft dir das Worksheet_change-Ereignis des
Tabellenblatts weiter:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$4" Then
If Target.Value = "richtig" Then
' Makro ausführen
End If
End If
End Sub
mfG
--
E-Mail von Martin Worm, Karlsruhe, Deutschland
Adresse: marti...@karlsruhe.netsurf.de
benutze Excel2000(9.0.2812) Win ME
Antworten bitte nur in die Newsgroup
Hallo Bernd,
ich weiss ja nicht, was Du da in der Formel so anstellen willst
;-))
Du koenntest aber eine beliebige Prozedur (nur mal so als
Anregung) aus einem Event aufrufen.
Beispiel:
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Set Target = Range("F4")
If Target.Value = "richtig" Then
Modul1.Aufgerufenes
Else
Exit Sub
End If
Set Target = Nothing
End Sub
Sub Aufgerufenes()
MsgBox "Hallo"
End Sub
Mit freundlichem Gruss
Wilfried
Mfg, Franz
Function m()
Call a
End Function
Sub a()
MsgBox "Hi, ich bin eine Sub von einer Funktion gestartet"
End Sub
=WENN(A1=1;m();"Keine Sub aufgerufen")
"Bernd Augustin" <ma...@bernd-augustin.de> schrieb im Newsbeitrag
news:9u63cd$lqk$03$1...@news.t-online.com...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = ActiveCell.Offset(0, 1)
If Target.Value = "richtig" Then
Run "Auswahl"
Else
Exit Sub
End If
Set Target = Nothing
End Sub
Freundliche Grüße aus der Pfalz