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

Makro aus WENN(... Funktion aufrufen

125 views
Skip to first unread message

Manfred Kral

unread,
Jul 17, 2002, 4:38:15 AM7/17/02
to
Ist es möglich aus einer Funktion einer Zelle (Beispiel
(WENN(A1>3;Makroaufruf(Makro1);"")) ein Makro zu starten???

Danke für die Antworten


Mani


Daniel Schmitz

unread,
Jul 17, 2002, 4:59:22 AM7/17/02
to
Hi Manfred,

auf diese Art und Weise ist es meines Wissens nach nicht möglich
ein Makro aufzurufen.
Du kannst aber das Worksheet_Change Ereignis zur Hilfe nehmen.
Ich weiß jetzt nicht genau wie es bei Dir aussehen soll, aber ein
kleiner Versuch:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim nWert As Integer
nWert = Range("A" & Target.Row).Value

If nWert > 3 Then
'Dein Code
End If
End Sub

Ist es sowas was Dir vielleicht weiterhelfen könnte?

HTH
Daniel


"Manfred Kral" <kr...@webreflect.de> schrieb im Newsbeitrag
news:ah3acc$q0kbs$1...@ID-31243.news.dfncis.de...

Melanie Breden

unread,
Jul 17, 2002, 7:33:57 AM7/17/02
to
Hallo Manfred,


"Manfred Kral" <kr...@webreflect.de> wrote:
>Ist es möglich aus einer Funktion einer Zelle (Beispiel
>(WENN(A1>3;Makroaufruf(Makro1);"")) ein Makro zu starten???
>


du könntest folgende Formel in B1 verwenden:
=WENN(A1>3;"Makro1";"Makro2")


In den Codebereich der entsprechenden Tabell dann folgende Ereignis Prozedur:


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> [a1] Then Exit Sub
If Target = "" Then Exit Sub
Application.EnableEvents = False

Application.Run ([B1].Value)

Application.EnableEvents = True
End Sub


In einem allgemeinen Modul hinterlegst du deine Makros:


Sub Makro1()
MsgBox "Hallo " & Application.UserName & Chr(10) & _
"Der Wert in A1 beträgt " & [a1] & ", ""Makro1"" wird gestartet."
End Sub


Sub Makro2()
MsgBox "Hallo " & Application.UserName & Chr(10) & _
"Der Wert in A1 beträgt " & [a1] & ", ""Makro2"" wird gestartet."
End Sub


So bist du flexibel in der Formel und kannst auf alle hinterlegten Makros
zugreifen.


Hoffe, dass dir das weiterhilft


mit Gruß
Melanie

--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de

Thomas Ramel

unread,
Jul 17, 2002, 7:48:45 AM7/17/02
to
Grüezi Manfred

Manfred Kral schrieb:


>
> Ist es möglich aus einer Funktion einer Zelle (Beispiel
> (WENN(A1>3;Makroaufruf(Makro1);"")) ein Makro zu starten???

Damit die Auswahl nicht zu leicht fällt eine 3. Möglichkeit mit einer
benutzerdefinierten Funktion ;-)

Die folgenden Code-Zeilen in ein allgemeines Modul der Arbeismappe
kopiern und die Funktion MAKRO_WENN() anstelle der ursprünglichen
WENN()-Funktion verwenden:

Public Function MAKRO_WENN(Ausdruck As Boolean, Dann_Makro As String,
Optional Sonst_Makro As Variant) As Variant
'Funktion: Startet das in 'Dann_Makro' spezifizierte Makro,
' wenn 'Ausdruck' logisch wahr ist. Bei
' Angabe des optionalen 'Sonst_Makro'-Arguments
' erfolgt Start eines alternativen Makros,
' wenn 'Ausdruck' logisch falsch ist.
'Bemerkung(en): -
'© 2001, Ralf Nebelo

If Ausdruck = True Then
MAKRO_WENN = True

If Dann_Makro > "" Then
Application.Run Dann_Makro
Else
MAKRO_WENN = CVErr(2001)
End If
Else
MAKRO_WENN = False

If Not IsMissing(Sonst_Makro) Then
If Sonst_Makro > "" Then
Application.Run Sonst_Makro
Else
MAKRO_WENN = CVErr(2001)
End If
End If
End If
End Function

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

http://www.4853.ch/Schlesinger

0 new messages