• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

wenn funktion startet makro

n100144

Erdapfel
Registriert
04.06.14
Beiträge
5
Ich hätte gerne Hilfe bei der Problemstellung aus einer Wenn-Formel ein Makro zu starten.
=Wenn(B1<>0;Makro1;"")
Bei diesem Aufruf erhält man unter Excel2011 eine Fehlermeldung.
Unter Windows soll es funktionieren.
 
1) Schreibe bitte Mein_Makro() und nicht nur Mein_Makro
2) Eine "Formel" in Excel kann nur eine FUNKTION, nicht aber eine SUB aufrufen
3) Ansonsten bleibt nur die Lösung, dass Deine WENN Formel eine Makro Funktion auf ruft, welche wiederum eine Sub aufruft
 
Die vollständige Funktion lautet:
Funktion Makro1()
Application.Volatile
MakroStart_Makro
End Funktion
Sub Makro1()
Range("B105").Select
Range("B105").GoalSeek Goal:=0, ChangingCell:=Range("B79")
End Subl
 
Da ist so ziemlich alles falsch, was falsch sein kann ;)
Du solltest Dich vielleicht mal in VBA Grundlagen einlesen :D .....
 

Was erwartest Du?
Kostenlosen Support?

Klar ist das ein Forum - natürlich hilft man - aber VBA ist eben nicht in 2 Minuten erklärt - VBA Kurse gehen bei mir 3-5 Tage, dann können die Leute annähernd richtig VBA programmieren. Dein Problem ist eben nicht in 2 Minuten erklärt. Also musst Du Dich selber in VBA kundig machen und einlesen und nicht nur einfach Code abschreiben ohne zu wissen wie es geht - denn dann geht es eben nicht... und Du erwartest nun, dass ich den Part des Dozenten / Programmierer für Dich übernehme?

Klar kann man das von Dir verlinkte Beispiel nehmen. Aber dummerweise klappt es nicht so - das Makro muss man natürlich anpassen an die eigenen Bedürfnisse. Zudem fehlen einige "Befehle und Deklarationen" in dem Beispiel. Wäre auch die Frage - brauchst Du Application.Volatile ... bzw. weißt Du was das macht?

Das ist ein bisschen so wie - da hat einer ein Beispiel gemacht wie man ein Bad baut - und hat dies als grobe Funktionszeichnung erstellt - und mit Hilfe dieser Zeichnung baue ich nun 1:1 eine Küche nach.

Nix für ungut - aber 1:1 funktioniert das halt nicht so für das, was Du machen willst.
Vielleicht sagst Du erst mal, was Dein Makro machen soll, nachdem die Wenn Funktion dieses Makro startet...
 
Mei mei mei...

Code:
Zelle A1:
50

Code:
Zelle B1
=WENN(A1>100;starter();"Nix")

---

Visual Basic Editor - in einem Modul
Code:
Public Function starter() As Boolean
   
    Call meldung

End Function

Code:
Public Sub meldung()

    MsgBox "Klasse geht"
   
End Sub


Man sollte vielleicht die Namen (siehe Dein Beispiel) auch richtig vergeben ^^... also die WENN startet die Function starter() welche mit Call dann die Sub meldung aufruft. Und nicht wie in dem Beispiel die Namen der Functions und Subs hin und her geworfen werden. Zudem Elemente verwendet, welche man gar nicht braucht. Statt der MsgBox kommt halt Dein Code rein.

So gehts übrigens, Wenn A1 größer 100 - poppt die MsgBox auf...
 
  • Like
Reaktionen: doc_holleday
Na, Danke erst einmal für die Unterweisung.
Angeblich soll die Wenn Formel unter Windows ein Makro auslösen können (also kein Knopf zu drücken oder eine Tastenkombination zu betätigen).
Ob das unter OSX geht, ist somit die erste und grundsätzliche Frage.
Wenn es geht, dann kann auch die Zielwertsuche "vollautomatisch" gestartet werden.
Zweck:
Wenn der Wert der Zielzelle ungleich Null ist, variere die variabele Zelle solange, bis in der Zielzelle wieder die Null steht.
Damit ist ein "vollautomatischer" BreakEven möglich, der z.B. den Maximalpreis unter sich ändernden Bedingungen stetig anzeigt.
Darum will ich keinen Schalter einbauen und mit dem Makro der Zielwertsuche verbinden, Der muss nämlich erst betätigt werden und das führt zu "halbautomatisch".
1. Frage: Geht das nur unter Windows oder auch mit Excel 2011?
2. Frage: Was muss in der Wenn Formel stehen, da "Makro1()" eine Fehlermeldung produziert und was muss im Code stehen, um die Funktion zu ermöglichen?
Auch Dein Beispiel
Public Function starter() As Boolean
Call meldung
End Function
Public Sub meldung()
MsgBox "Klasse geht"
End Sub
benötigt einen Auslöser.
 
Ähm mein Beispiel funktioniert unter Windows und OS X Excel. Getestet. Ich habe es wie oben beschrieben gemacht, sonst hätte ich den Code nicht rein kopieren können.

Mein Beispiel braucht doch keinen verbundenen Knopf. Die Wenn Funktion prüft A1 und startet dann bei richtiger Bedingung das Makro. Da muss nix ausgelöst werden. Reicht wenn A1 sich ändert.

Und woher hast Du den Namen Malro1 ??!! Logisch dass Du #Name? bekommst, wenn die Function nicht existiert - also Makro1 ...

Das meinte ich. Es nutzt nichts wenn ich Dir ein Beispiel nenne. Wenn Du nicht verstehst - nutzt es nichts das nur zu kopieren. Du müsst sehen und verstehen.

Nochmals - mein o.g. Beispiel geht genau so wie Du es willst. Du schaffst es aber nicht es ein zu binden. Nix für ungut... bin raus hier...


Gesendet von meinem iPhone mit Apfeltalk