Danke für die Antworten
Mani
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...
"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
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 -