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

Forumthread: Ausführen eines Makros nach Eingabe in beliebiger

Ausführen eines Makros nach Eingabe in beliebiger
01.11.2007 20:51:14
Rainer
Hallo,
ich suche ein Möglichkeit, dass ein bestimmtes Makro ausgeführt werden soll, sobald in einer beliebigen Zelle ein Wert eingegeben wurde.
Fürher waren wohl zwei Makros (Sub auto_open() mit Angabe des Moduls, was bei OnKey ausgeführt werden soll) erforderlich. Das funktioniert aber nicht (mehr)
Und mit
ClassModule: Tabelle1

Private Sub Worksheet_change()
Name_des_Moduls
End Sub


komme ich auch nicht hin.
Kann mir bitte jemand helfen?
Gruß
Rainer

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausführen eines Makros nach Eingabe in beliebi
01.11.2007 20:56:48
Matthias
Hallo
in die entsprechende Tabelle

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "hallo" 'oder Dein Makro
End Sub


Userbild

Anzeige
AW: Ausführen eines Makros nach Eingabe in beliebi
01.11.2007 21:41:00
Rainer
Vielen Dank für diese schnelle Hilfe!
Ich wusste doch gar nicht, dass man im VBA-Projetk auch in der Tabelle Makros eingeben kann. Bei mir kamen die bisher immer in "Module". So habe ich das mal gelernt. Und bisher startete ich die Makros entweder mit Auto_open oder mit Klick auf Schaltfläche.
Man lernt eben nich aus. Noch einmal recht herzlichen Dank!
Wann schreibt man denn Module in Tabelle und wann in Module?
Gruß
Rainer

Anzeige
AW: Ausführen eines Makros nach Eingabe in beliebi
01.11.2007 22:16:32
Daniel
Hi
man schreibt Makros immer dann in die Tabelle, wenn sie fest dieser einen Tabelle zuzuordnen sind und hauptsächlich innerhalb dieser Tabelle wirken.
da wären dann z.B.
- alle Event-gesteuerten Makros, die zur Tabelle gehören (CHANGE, SELECTION_CHANGE, SHEET_ACTIVATE)
- alle Makros, sie zu einem STEUERELEMENT (Commandbutton, Listbox, Combobox) auf der Tabelle gehören.
ins allgemeine Modul schreibt man Makros, die Tabellen-übergreifend arbeiten oder in mehreren Tabellen der Datei wirken sollen.
einen Unterschied zwischen Modul und Modul der Tabelle erkennt man dann, wenn man einen Zellbezug OHNE angabe des Tabellenblatts verwendet: z.b. Range("A1")
im allgemeinen Modul bezieht sich eine derartige Angabe immer auf die gerade aktive Tabelle, im Modul der Tabelle immer auf diese Tabelle (auch wenn gerade eine andere aktiv ist)
Gruß, Daniel

Anzeige
AW: Ausführen eines Makros nach Eingabe in beliebi
01.11.2007 22:29:00
Rainer
D A N K E !
Man wird eben alt wie eine Kuh und lernt immer noch dazu
Viele Grüße
Rainer
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA Makro automatisch ausführen bei Eingabe


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro automatisch auszuführen, sobald in eine Zelle ein Wert eingegeben wird, folge diesen Schritten:

  1. Öffne dein Excel-Dokument.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle die Tabelle aus, in der das Makro ausgeführt werden soll (z.B. Tabelle1).

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

    Private Sub Worksheet_Change(ByVal Target As Range)
       ' Hier dein Makro aufrufen
       MsgBox "Wert wurde geändert!" ' oder Dein Makro
    End Sub
  5. Schließe den VBA-Editor und teste die Funktion, indem du einen Wert in die ausgewählte Tabelle eingibst.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Tabellenmodul eingefügt wurde, nicht in einem allgemeinen Modul.
  • Fehler: Die Eingabe wird nicht erkannt.

    • Lösung: Überprüfe, ob der Code in der richtigen Tabelle und im richtigen Sub eingefügt ist. Der Worksheet_Change-Ereignis muss im Modul der Tabelle stehen.

Alternative Methoden

Wenn du ein VBA Makro ausführen möchtest, das nicht direkt an eine Zelle gebunden ist, kannst du folgende Methoden in Betracht ziehen:

  • Verwendung von Schaltflächen:

    • Füge eine Schaltfläche hinzu und verknüpfe sie mit deinem Makro. So wird das Makro ausgeführt, wenn du auf die Schaltfläche klickst.
  • Verwendung von Auto_Open:

    • Erstelle ein Sub Auto_Open()-Makro, das beim Öffnen der Datei automatisch ausgeführt wird.

Praktische Beispiele

Angenommen, du möchtest eine einfache Nachricht anzeigen, wenn eine Zelle in der Spalte A geändert wird. Der Code könnte wie folgt aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
        MsgBox "Eine Zelle in Spalte A wurde geändert!"
    End If
End Sub

Dieses Makro wird nur ausgelöst, wenn eine Zelle in der Spalte A verändert wird.


Tipps für Profis

  • Vermeide Endlosschleifen: Wenn du innerhalb eines Worksheet_Change-Ereignisses eine Zelle änderst, kann dies zu einer Endlosschleife führen. Verwende Application.EnableEvents = False am Anfang und Application.EnableEvents = True am Ende deines Codes, um dies zu vermeiden.

  • Verwende Fehlerbehandlung: Füge Error-Handling hinzu, um sicherzustellen, dass dein Makro auch bei unerwarteten Fehlern weiterhin funktioniert.

On Error Resume Next
' Dein Code hier
On Error GoTo 0

FAQ: Häufige Fragen

1. Frage Wie kann ich mehrere Zellen gleichzeitig überwachen?

Antwort Du kannst die Intersect-Funktion nutzen, um mehrere Zellen oder Bereiche zu überwachen. Zum Beispiel:

If Not Intersect(Target, Me.Range("A1:B10")) Is Nothing Then
    ' Aktionen für die Zellen A1 bis B10
End If

2. Frage Wann sollte ich ein Makro in ein Modul statt in ein Tabellenmodul schreiben?

Antwort Schreibe ein Makro in ein allgemeines Modul, wenn es mehrere Tabellen betrifft oder wenn es nicht an ein bestimmtes Ereignis in einer Tabelle gebunden ist.

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