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

Forumthread: Makro automatisch ausführen ohne ein Button

Makro automatisch ausführen ohne ein Button
08.10.2015 12:19:42
TroFa
Hallo,
Ich habe ein Problem.
Über ein CommandButton funktioniert das folgende Makro einwandfrei.

Private Sub CommandButton3_Click()
If Range("B184").Value = 500 Then
Exit Sub
Else
Range("B13").Select
Range("B184").GoalSeek Goal:=500, ChangingCell:=Range("B13")
End If
End Sub

Nun möchte ich, dass das Makro nach jeder Eingabeänderung automatisch ausgeführt werden soll. Also der Button soll nicht mehr betätigt werden, sondern das Makro sollte direkt im Tabellenblatt integriert sein.
Folgendendes habe ich ausprobiert:

Private Sub Worksheet_Calculate()
If Range("B184").Value 

Leider funktioniert es nicht und es kommt folgender Fehler:
Laufzeitfehler "-2147417848 (80010108)":
Die Methode GoalSeek für das Objekt Range ist fehlgeschlagen
Ich bitte um Hilfe.
Vielen Dank im voraus.

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro automatisch ausführen ohne ein Button
08.10.2015 16:10:56
Michael
Hi TroFa,
ich würde das Change-Ereignis verwenden. Das hat nebenbei den Vorteil, daß Du abfragen kannst, ob eine Änderung in dem Bereich erfolgt ist, der von Deiner Formel ausgewertet wird.
Eine ähnliche Fragestellung wurde hier ausdiskutiert:
https://www.herber.de/forum/archiv/316to320/317302_Zielwertsuche_mit_VBA.html
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro automatisch ausführen ohne einen Button


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro automatisch auszuführen, ohne einen Button zu verwenden, kannst Du das Change-Ereignis in VBA nutzen. Hier ist eine einfache Anleitung:

  1. Öffne die Excel-Datei, in der Du das Makro implementieren möchtest.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA)-Editor zu öffnen.

  3. Suche im Projektfenster nach dem entsprechenden Arbeitsblatt, in dem Du das Makro ausführen möchtest.

  4. Klicke mit der rechten Maustaste auf das Arbeitsblatt und wähle "Code anzeigen".

  5. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("B13")) Is Nothing Then
            If Me.Range("B184").Value <> 500 Then
                Me.Range("B184").GoalSeek Goal:=500, ChangingCell:=Me.Range("B13")
            End If
        End If
    End Sub
  6. Schließe den VBA-Editor und teste das Makro, indem Du den Wert in Zelle B13 änderst.

Mit diesem Code wird das Makro automatisch ausgeführt, wenn sich der Wert in Zelle B13 ändert.


Häufige Fehler und Lösungen

  • Laufzeitfehler "-2147417848 (80010108)": Die Methode GoalSeek für das Objekt Range ist fehlgeschlagen.
    Lösung: Stelle sicher, dass die Zelle, auf die sich der GoalSeek bezieht, den richtigen Wert hat. Es kann auch helfen, die Berechnungseinstellungen auf Automatisch zu setzen.

  • Das Makro wird nicht ausgeführt.
    Lösung: Überprüfe, ob das Change-Ereignis korrekt implementiert wurde und dass Du in der richtigen Arbeitsmappe arbeitest.


Alternative Methoden

Wenn Du ein Excel-Makro automatisch starten möchtest, ohne eine Datei zu öffnen, kannst Du die Workbook_Open-Ereignisprozedur verwenden. Hier ist ein Beispiel:

  1. Im VBA-Editor wähle "DieseArbeitsmappe" aus.
  2. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
        Call DeinMakro
    End Sub

Ersetze DeinMakro mit dem Namen des Makros, das Du ausführen möchtest. Dieses Makro wird ausgeführt, sobald die Datei geöffnet wird.


Praktische Beispiele

Hier ist ein Beispiel für ein VBA-Makro, das beim Start ausgeführt wird:

Sub BeispielMakro()
    MsgBox "Das Makro wurde automatisch gestartet!"
End Sub

Füge diesen Code in das Modul Deiner Arbeitsmappe ein und rufe ihn über das Workbook_Open-Ereignis auf, wie oben beschrieben.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler frühzeitig zu erkennen.
  • Teste Deine Makros in einer Kopie der Arbeitsmappe, um ungewollte Änderungen zu vermeiden.
  • Überlege, Event-Trigger wie Worksheet_Calculate für komplexere Berechnungen zu verwenden, um Makros effizient auszuführen.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro automatisch ausführen, ohne dass die Datei geöffnet wird?
Leider kannst Du ein Makro nicht ausführen, ohne die Datei zu öffnen. Du kannst jedoch das Makro so einstellen, dass es beim Öffnen der Datei automatisch startet.

2. Kann ich ein Makro auslösen, wenn sich Daten in einer bestimmten Zelle ändern?
Ja, das kannst Du mit dem Worksheet_Change-Ereignis tun, indem Du überprüfst, ob die Änderung in der gewünschten Zelle stattgefunden hat.

3. Was kann ich tun, wenn mein Makro nicht funktioniert?
Überprüfe den Code auf Syntaxfehler, stelle sicher, dass die Zellen, auf die Du zugreifst, die richtigen Werte haben, und teste den Code schrittweise, um den Fehler zu lokalisieren.

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