Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA Code (Makro) per Formel aufrufen

942 views
Skip to first unread message

Bernd Augustin

unread,
Nov 28, 2001, 4:58:11 PM11/28/01
to
Hallo NG

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

Helma Spona

unread,
Nov 29, 2001, 6:13:03 AM11/29/01
to
Hallo Bernd
"Bernd Augustin" <ma...@bernd-augustin.de> schrieb im Newsbeitrag
news:#cBxdZFeBHA.1740@tkmsftngp03...

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


Bernd Augustin

unread,
Nov 29, 2001, 2:46:27 PM11/29/01
to
Danke für die Hilfe.

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

Martin Worm

unread,
Nov 29, 2001, 2:30:08 PM11/29/01
to

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

Wilfried Butzek

unread,
Nov 29, 2001, 6:18:08 PM11/29/01
to
Bernd Augustin schrieb am Thu, 29 Nov 2001 20:46:27 +0100:
>
> Danke für die Hilfe.
>
> 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.

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

f.risling

unread,
Nov 30, 2001, 12:39:27 PM11/30/01
to
Tach, wenn ich eine eigene Funktion starten kann, was hindert mich dann
daran aus der Funktion ne Sub aufzurufen?

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...

Bernd Augustin

unread,
Nov 30, 2001, 2:28:33 PM11/30/01
to
Danke zusammen. So klappt es.
Angepaßt an meine Anwendung sieht es so aus.

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


0 new messages