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

Forumthread: Makro mittels WENN-Befehl ausführen

Makro mittels WENN-Befehl ausführen
29.11.2004 17:29:59
ThomasL
Hallo,
ich würde gerne einen Makro ausführen lassen, wenn eine bestimmte Bedingung erfüllt bzw. nicht erfüllt ist. Logisch erschiene mir daher die Aufnahme des Ausführungsbefehls in eine Wenn-Funktion (Beispiel: Wenn Zelle 1 negativ, dann führe Makro1 aus). Ich habe aber leider keine Ahnung, wie ein solcher Befehl aussieht. Kann mir jemand helfen.
Vielen Dank
Thomas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro mittels WENN-Befehl ausführen
Volker
Hallo Thomas,
der Aufruf eines Makros erfolgt durch seinen Namen an beliebiger Stelle in deinem Code.
Bsp.:

Sub Makro1()
Makro2
End Sub

Makro2()
if range("A1") Makro1
End If
End Sub
Gruß
Volker
AW: Makro mittels WENN-Befehl ausführen
ThomasL
Hallo Volker,
vielen Dank für den Hinweis. Nur stellt sich die gleiche Frage in dem Fall sofort wieder für Makro2. Ich weiß, es klingt verwiirend, aber ganz konkret stellt sich das Problem wie folgt: In einem Excel-Spreadsheet wird in Zelle 1 ein Wert errechnet. In Abhängigkeit davon, ob der entsprechende Zellwert negativ ist, soll dieser in Zelle 10 übertragen werden. Und zwar am besten automatisch, durch eine Art "run"-Befehl wenn Wert der Zelle 1 negativ. In dem von dir genannten Beispiel ist mir nicht verständlich, wie denn nun dein Makro2 automatisch (also ohne über Extras-Makro-Ausführen oder ein programmiertes Symbol zu gehen) ausgeführt werden kann.
Gruß
Thomas
Anzeige
AW: Makro mittels WENN-Befehl ausführen
Volker
Hallo Thomas,
wie die meisten, die hier ohne VBA-Kenntnisse posten, erwartest Du eine fertige Lösung für Dein Problem. Wenn dann jemand einen Code postet, wissen sie nicht einmal, wo sie den hinschreiben sollen.
Aus deiner Antwort sehe ich, dass Du wahrscheinlich noch nie den Makrorekorder benutzt hast oder mal den VBA-Editor geöffnet hast.
Aber gut:
Es gibt für die Worksheet-Objekte gewisse Prozeduren, die beim Eintreten bestimmter Ereignisse angestoßen werden.
Wenn das Blatt aktiviert wird, eine andere Zelle aktiviert wird oder auch, wenn eine Zelle neu berechnet wird. Klick mal im Editor unter MicrosoftExcelObjecte auf Tabelle1.
Kopf und Fuß dieser Prozeduren sind im Editor vorgegeben und können mit dem Code gefüllt werden, den man bei dem Jeweiligen Ereignis ausgeführt haben will.
In deinem Fall wäre es das "Worksheet_Calculate"-Ereignis.
Den folgenden Code kannst Du bei Tabelle1 eintragen. Er ruft Makro2 auf, wenn in die Formel in Zelle A1 einen negativen Wert berechnet.

Private Sub Worksheet_Calculate()
If Range("a1") < 0 Then makro2
End Sub

Ich würde Dir dringend empfehlen, auch mal mit dem Makrorekorder irgendwelche Aktionen aufzuzeichnen, um ein Gefühle für die Sache zu kriegen.
Gruß
Volker
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro mittels WENN-Befehl ausführen in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel auszuführen, wenn eine bestimmte Bedingung erfüllt ist, musst du den VBA-Editor verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Finde das richtige Arbeitsblatt:

    • Suche im Projektfenster auf der linken Seite dein Arbeitsblatt (z. B. „Tabelle1“).
  3. Füge den Code ein:

    • Klicke doppelt auf das Arbeitsblatt, um das Codefenster zu öffnen. Füge den folgenden Code ein:
    Private Sub Worksheet_Calculate()
       If Range("A1") < 0 Then
           Makro2
       End If
    End Sub
    • Dieser Code führt Makro2 aus, wenn der Wert in Zelle A1 negativ ist.
  4. Speichere und teste:

    • Speichere deine Änderungen und gehe zurück zu Excel. Ändere den Wert in Zelle A1, um zu sehen, ob das Makro ausgeführt wird.

Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt:

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblatt eingefügt hast und dass die Makros in deinem Excel aktiviert sind.
  • Fehler: Bezug auf die Zelle:

    • Lösung: Überprüfe den Zellbezug im Code. Es sollte Range("A1") sein, nicht Range("a1") (Beachte Groß- und Kleinschreibung in VBA).

Alternative Methoden

Eine weitere Möglichkeit, ein Makro auszuführen, besteht darin, ein Ereignis wie „Worksheet_Change“ zu nutzen. Das funktioniert so:

  1. Füge diesen Code ins gleiche Arbeitsblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("A1")) Is Nothing Then
           If Range("A1") < 0 Then
               Makro2
           End If
       End If
    End Sub
    • Mit diesem Code wird Makro2 ausgeführt, wenn sich der Wert in Zelle A1 ändert.

Praktische Beispiele

Angenommen, du möchtest ein Makro ausführen, das den Inhalt von Zelle A1 in Zelle B1 überträgt, wenn der Wert negativ ist. Der VBA-Code könnte so aussehen:

Private Sub Worksheet_Calculate()
    If Range("A1") < 0 Then
        Range("B1").Value = Range("A1").Value
    End If
End Sub

Mit diesem Code wird der Wert aus A1 automatisch in B1 übertragen, sobald A1 negativ wird.


Tipps für Profis

  • Makrorekorder verwenden: Nutze den Makrorekorder, um Aktionen aufzuzeichnen und den generierten Code zu verstehen. So bekommst du ein besseres Gefühl für die VBA-Syntax.

  • Debugging: Verwende die Debugging-Funktionen im VBA-Editor, um Fehler leichter zu erkennen und zu beheben.


FAQ: Häufige Fragen

1. Wie aktiviere ich Makros in Excel? Um Makros zu aktivieren, gehe zu „Datei“ > „Optionen“ > „Sicherheitscenter“ > „Einstellungen für das Sicherheitscenter“. Hier kannst du die Makros aktivieren.

2. Was ist der Unterschied zwischen „Worksheet_Calculate“ und „Worksheet_Change“? „Worksheet_Calculate“ wird ausgelöst, wenn eine Zelle neu berechnet wird, während „Worksheet_Change“ bei Änderungen in bestimmten Zellen aktiviert wird.

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