Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Makro über die Funktion WENN() starten

Forumthread: Makro über die Funktion WENN() starten

Makro über die Funktion WENN() starten
02.04.2025 18:41:06
Micha
Hallo und guten Tag,

ich möchte ein Makro über die WENN-Funktion starten.
Habe eine Beispieldatei beigefügt in der, so hoffe ich, alles beschrieben ist
was ich möchte. Es werden Fachausdrücke fehlen da ich diese als Laie nicht kenne.
Ich bitte daher um etwas Nachsicht. :-)
Bin für jede Hilfe dankbar.

https://www.herber.de/bbs/user/176552.xlsm

Gruß Micha
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro über die Funktion WENN() starten
02.04.2025 18:51:39
daniel
Hi
du brauchst keine Fachbegriffe um zu beschreiben, was du erreichen möchtest.
innerhalb von Formeln kann man auch selbstgeschriebene Funktionen verwenden, das sind im Prinzip auch Makros, aber mit Rückgabewert.
das Problem an der Sache ist, dass auch selbstgeschriebene Funktionen, die in Zellen stehen, nur das tun dürfen, was normale Formeln auch können, und das ist nicht viel, nämlich nur einen Rückgabewert zurückgeben.
Irgendwelche Aktionen mit Außenwirkung (andere Zellen verändern) sind so nicht möglich.

Warum scheidet Selection-Change aus?
was willst du eigentlich erreichen?

Gruß Daniel
Anzeige
AW: Eigentlich ok
02.04.2025 18:59:16
Fennek
Hallo,

die Formel ist als Array-formel eingegeben, also mit "{}". Ohne funktiniert das.

In dieser Kontruktion wird die Beschränkung eine UDF ausgehebelt, die "Sub" kann alles.


mfg


B1: =WENN(A1="Start";Makro1_start();"nichts")

A1: "Start" eintippen
Anzeige
AW: Makro über die Funktion WENN() starten
02.04.2025 19:09:48
Micha
Hallo Daniel,
ersteinmal vielen Dank für Deine schnelle Reaktion.
Die Erklärung ist etwas komliziert.
Ich habe einen sehr großen Code in Selection-Change.
Excel wird daher immer langsamer.
Möchte diese Prozedur "umgehen" damit der Programmablauf
schneller geht. Also mit der WENN Funktion das Makro auffrufen.
Evtl. gibt es ja noch eine weitere Möglichkeit.
Anzeige
AW: Makro über die Funktion WENN() starten
02.04.2025 19:16:06
BoskoBiati
Hi,

dann taugt der Code nichts!

Gruß

Edgar
AW: Makro über die Funktion WENN() starten
02.04.2025 19:36:47
daniel
Daher die Frage, was du machen willst.
Wie Edgar schreibt, wenn der eigentliche Code langsam ist, bringt es nichts ihn anders auszulösen.
ggf braucht dein Change-Event noch ein paar Abfragen, die besser steueren, wann genau der dahinterliegende Code ausgeführt werden soll, damit es nicht unnötig oft passiert.
vielleicht kann man aber auch deinen selbst noch optimieren, so dass die notwendige Aktion schneller abläuft.
dazu müsste man aber wissen, was du machen willst und wie dein Code dazu aussieht.
Gruß Daniel
Anzeige
AW: Makro über die Funktion WENN() starten
03.04.2025 12:28:48
Micha
Hallo Daniel,
melde mich erst heute, da ich.....

Ich habe mal einen Auszug meiner Datei beigefügt. Ist wohl so nicht
lauffähig, jedoch hast Du einen kleinen Überblick worum es geht.

Wenn ich und darum geht es, einen Teil des Codes "eintexte", (hoffentlich ist das
richtig ausgedrückt), funktioniert der Rest des Codes ganz normal. Texte ich den Code
aus, funktioniert dieser auch, jedoch sehe ich lange die "Eieruhr".
Ich weiß, dass es schwierig ist die Gedanken des Anderen nachzuvollziehen. Wenn
es keine Lösung gibt, macht es nichts. Muss dann damit leben, oder auf einige Funktionen
verzichten.
Dank schon mal für Deine bisherigen Bemühungen.

Grüße aus Mecklenburg-Vorpommern
Micha

https://www.herber.de/bbs/user/176559.xlsm

Ps. Vielleicht ist mein Code wirklich Mist aber ich kann das nicht anders.
Anzeige
AW: Makro über die Funktion WENN() starten
04.04.2025 14:04:20
{Boris}
Hi,

nur mal auf die Schnelle: Dein Doppelklickereignis kannst Du deutlich einkürzen, da Du nicht für jede Spalte einzeln eine If-Abfrage brauchst. Da der Wirkungsbereich sich über die Spalten 38 bis 43 erstreckt und die Aktion darauf immer die Selbe ist, z.B. so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

On Error Resume Next
Target.PasteSpecial xlPasteValuesAndNumberFormats
If Target.Column > 37 And Target.Column 44 Then
Cells(Rows.Count, 9).End(xlUp).Offset(1) = Target
Cancel = True
End If
End Sub


VG, Boris
Anzeige
AW: Makro über die Funktion WENN() starten
04.04.2025 18:12:20
Micha
Hallo Boris,

vielen Dank für Deine Rückmeldung.
Habe Deinen Vorschlag in meinen Code eingefügt und dieser
funktioniert auch. Super! Habe mit einer Rückmeldung gar nicht
mehr gerechnet.
Ich mag kaum fragen, ob Du mir nochmal helfen kannst. Mach ich aber trotzdem :-)
In der Beispieldatei habe ich einen Block auskommentiert, welcher den
Programmzyklus sehr verlangsamt. Dann funktioniert der Code auch recht schnell.
Hebe ich den Kommentar wieder auf, wird alles sehr langsam und die Eieruhr läuft.
Ich brauche aber eine Lösung um, wenn die erste
Seite voll ist, beim nächsten Doppelklick nicht die 1. freie Zelle angesprochen wird, sondern
erst die 15. Daher mein gewagtes programmieren. :-(
Beispiel: Wenn auf Seite 1 Zelle (I37) belegt ist, dann gehe bis Zelle (I51) damit ich per Doppelklick
Zelle (I52) ansprechen kann. Am besten Du schaust Dir meine Beispieldatei nochmals an.
Ich habe in meiner Datei 12 Seiten.

https://www.herber.de/bbs/user/176598.xlsm

Gruß aus Mecklenburg-Vorpommern
Micha
Anzeige
AW: Eigentlich ok
02.04.2025 19:07:28
Micha
Halle Fennek,

verstehe Dich nicht ganz.
Hast Du mal im VBA Editor den
Code Range("C1").Value = "Test" freigeschaltet?
Dann funktioniert es nicht mehr.

Gruß Micha
AW: Beispieldatei
03.04.2025 11:55:00
Micha
Hallo Fennek,

melde mich erst jetzt. Sorry.

Bitte mal die Beispieldatei testen, dann weißt Du was ich meine
warum diese nicht richtig funktioniert.
Ich möchte z.B. wenn in Zelle B1 "Start" steht, die Funktion
aufgerufen wird. Das funktioniert mit der MsgBox super, jedoch wenn
ich "Range("C1").Value = "Test"" mit eingebe erhalte ich die Fehlermeldung #WERT!
Evtl. habe ich da einen Denkfehler. Bitte prüfe meinen kleine Code noch einmal.
Es wäre nett, wenn Du Dich dazu nochmal melden würdest.
Vielen Dank im Voraus.
Gruß Micha

https://www.herber.de/bbs/user/176558.xlsm
Anzeige
AW: sorry, aber
03.04.2025 12:22:33
Fennek
Hallo,

sorry, aber bei xlsm aus unbekannte Quellen mach ich zuerst einen Sicherheitscheck, danch öffne ich die Datei ohne VBA zu aktivieren. Das reicht um die Codes zu sehen und sie in eine neue Datei zu kopieren.

Damit kann ich den Code nicht in deiner Datei ausführen.

mfg
Anzeige
AW: sorry, aber
03.04.2025 12:31:13
Micha
Du kannst diesen aber "nachbauen" oder?

Gruß Micha
AW: Die gezeigte Datei ist der Nachbau (owT)
03.04.2025 13:19:20
Fennek
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18