Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro starten, wenn Bedingung erfüllt

Forumthread: Makro starten, wenn Bedingung erfüllt

Makro starten, wenn Bedingung erfüllt
16.08.2002 09:43:28
Günther Klippel
Hallo, Experten,

gibt es die Möglichkeit aus einer wenn-Formel heraus bei erfüllter Bedingung ein Makro zu starten; wie lautet der Aufruf ?

Vielen Dank im Vorraus für Eure Hilfe

Günther

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 09:48:51
Wolfgang
Hallo Günter,

Ich würde mal wie folgt ansetzen:

If BlaBlaBla (Bedingung) Then
Call PiPaPo (Makroname)
End If

Wolfgang

Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 10:32:20
Günther Klippel
Danke Wolfgang,

aber ich suche nach einer Möglichkeit, das Makro aus der Formel einer Zelle zu starten, und nicht aus dem VBA-Code;

=wenn(A1<>"";call makro1) funktioniert nicht

gibt es da noch was?

Grüße

Günther

Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 10:35:04
michel
hallo günter,

wenn du das makro nach einer bestimmten eingabe in einer bestimmten zelle starten willst musst den umweg über ein worksheet_change im Tabellenmodul gehen. Dort kannst du dann definieren, wann, bei welcher eingabe in welcher zelle, welches makro gestartet werden soll.....verständlich??

du kannst ja mal schildern, was wann passieren soll, dann kann man das worksheet_change genauer definieren....

michel

Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 10:51:55
Günther Klippel
Hallo Michel,

der Befehl worksheet_change sagt mir leider nichts;

aber passieren soll folgendes:

in einer Übersicht von Projekten sollen die Zellen einer Zeile farblich unterschiedlich hervorgehoben werden, in Abhängigkeit von Datums-Einträgen in Spalten wie Eingangsdatum, Auftragsdatum, erledigt, da mit der bedingten Formatierung nur eine Zelle bearbeitet werden kann.

Günther

Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 11:03:18
Andreas
Hallo,

es geht folgendermassen.

Allerdings können in einer Tabellenfunktion wie der Wenn-Funktion nur Funktionen (auch selbstgeschriebene) und keine Subs aufgerufen werden.
Ist aber kein Problem:
Schreibe den folgenden Code in ein normales Modul:


Function Makroaufruf()
MsgBox "Die Bedingung ist erfüllt!"
End Function

oder alternativ:

Function Makroaufruf()
MeinMakro
End Function

Sub MeinMakro()
MsgBox "Die Bedingung ist erfüllt!"
End Sub

zum Aufruf in eine beliebige Zelle:

=wenn(A1=10;Makroaufruf();"")

Gruss

Andreas


Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 11:16:28
michel
hallo günther,

um daraus jetzt ein makro basteln zu können müsste ich die tabelle sehen, aber nach dem was du schreibst, kannst du das doch über die bedingte formatierung lösen....

die bedingung als Formel ist, entsprechende bedingungen formulieren und die Zellen damit formatieren....

wenn du nicht klarkommst..vorschlag: schick mir mal nen auszug aus deiner tabelle, dann wird das schon werden..

michel

Anzeige
Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 12:18:38
Günther Klippel
Danke, Supertip

Günther

Re: Makro starten, wenn Bedingung erfüllt
16.08.2002 12:20:12
Günther
Vielen Dank, aber mit dem Vorschlag von Wolfgang gehts gut.
Günther
;
Anzeige

Infobox / Tutorial

Makro starten bei erfüllter Bedingung in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro zu starten, wenn eine bestimmte Bedingung erfüllt ist, kannst Du den folgenden Ansatz verwenden. Beachte, dass der Aufruf eines Makros innerhalb einer Zelle nicht direkt möglich ist. Stattdessen musst Du den Worksheet_Change-Ereignis verwenden. Hier sind die Schritte:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Doppelklicke im Projektfenster auf das Tabellenblatt, in dem Du das Makro auslösen möchtest.

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
           If Target.Value <> "" Then
               Call MeinMakro
           End If
       End If
    End Sub
    
    Sub MeinMakro()
       MsgBox "Die Bedingung ist erfüllt!"
    End Sub
  4. Schließe den VBA-Editor und teste die Funktion, indem Du in Zelle A1 einen Wert eingibst.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt.

    • Stelle sicher, dass Du die Makros in Deiner Excel-Anwendung aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Makros.
  • Fehler: Die Zelle A1 wird nicht erkannt.

    • Überprüfe die Funktionsweise des Intersect-Befehls. Stelle sicher, dass Du die richtige Zellreferenz verwendest.

Alternative Methoden

Wenn Du ein Makro aus einer Formel in einer Zelle aufrufen möchtest, kannst Du eine benutzerdefinierte Funktion erstellen. Hier ist ein Beispiel:

Function Makroaufruf() As String
   Makroaufruf = "Die Bedingung ist erfüllt!"
End Function

Du kannst diese Funktion dann in einer Zelle verwenden:

=WENN(A1=10;Makroaufruf();"")

Beachte, dass benutzerdefinierte Funktionen in Excel nicht direkt Makros ausführen können, aber Du kannst sie verwenden, um Ergebnisse zurückzugeben.


Praktische Beispiele

Angenommen, Du möchtest, dass bei der Eingabe eines Datums in Zelle B2 das Makro ausgeführt wird, um die Zeile farblich zu ändern:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B2")) Is Nothing Then
        If IsDate(Target.Value) Then
            Target.EntireRow.Interior.Color = RGB(255, 255, 0) ' Gelb
        End If
    End If
End Sub

In diesem Beispiel wird die gesamte Zeile, in der sich B2 befindet, gelb markiert, wenn Du ein Datum eingibst.


Tipps für Profis

  • Verwende Application.EnableEvents = False, um unerwünschte Schleifen im Code zu vermeiden, insbesondere wenn Du mehrere Zellen gleichzeitig änderst.
  • Dokumentiere Deinen Code mit Kommentaren, um die Wartung zu erleichtern.
  • Teste Deine Makros in einer Kopie der Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich ein Makro aus einer Excel-Formel heraus aufrufen? Leider kannst Du direkt in einer Zelle kein Makro aus einer Formel heraus starten. Stattdessen kannst Du die Worksheet_Change-Ereignisse verwenden.

2. Wie kann ich mehrere Bedingungen für das Auslösen eines Makros definieren? Du kannst mehrere If-Bedingungen in deinem Worksheet_Change-Ereignis kombinieren, um verschiedene Aktionen auszuführen, abhängig von den Eingaben in verschiedenen Zellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige