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

Forumthread: Makro auf eine Eingabe warten lassen

Makro auf eine Eingabe warten lassen
19.04.2006 14:47:04
Bönte
Hallo zusammen,
wie bringe ich ein Makro dazu, auf eine (manuelle) Eingabe eines Wertes in einer Zelle zu warten und dann mit diesem Wert "weiter zu rechnen".
Also so ähnlich wie mit einer Inputbox, nur, dass ich meine Eingabe nicht in eine Inputbox machen möchte, sondern in eine spzeielle zelle in einem Arbeitsblatt.
Es wäre lieb, wenn mir einer weiterhelfen kann.
Vielen Dank!
Franziska
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auf eine Eingabe warten lassen
19.04.2006 14:52:13
Matthias
Hallo Franziska,
z.B. auf Änderung der Zelle A1 reagieren:
ins Tabellenblattmodul:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1"), Target) Is Nothing Then
'"weiterrechnen"
MsgBox "Hier geht's weiter"
End If
End Sub

Gruß Matthias
Anzeige
AW: Makro auf eine Eingabe warten lassen
19.04.2006 14:59:23
Bönte
Danke für die schnelle Hilfe! Franziska
;
Anzeige
Anzeige

Infobox / Tutorial

Makro auf eine Eingabe warten lassen


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel VBA so zu gestalten, dass es auf eine (manuelle) Eingabe in einer speziellen Zelle wartet, kannst Du das folgende Verfahren nutzen. In diesem Beispiel reagieren wir auf Änderungen in der Zelle A1:

  1. Öffne die Excel-Datei, in der Du das Makro erstellen möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Suche im Projekt-Explorer nach dem Tabellenblatt, in dem Du das Makro implementieren möchtest.
  4. Doppelklicke auf das entsprechende Tabellenblatt, um das Code-Fenster zu öffnen.
  5. Füge den folgenden Code in das Code-Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A1"), Target) Is Nothing Then
        ' "weiterrechnen"
        MsgBox "Hier geht's weiter"
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.
  2. Gib einen Wert in die Zelle A1 ein. Das Makro sollte jetzt auf die Eingabe warten und die Nachricht anzeigen, wenn Du die Zelle änderst.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Tabellenblattmodul eingefügt wurde. Es muss im Modul des betreffenden Arbeitsblatts stehen.
  • Fehler: Das MsgBox-Fenster erscheint nicht.

    • Lösung: Überprüfe, ob die Zelle A1 tatsächlich geändert wurde. Das Makro reagiert nur, wenn die Zelle A1 bearbeitet wird.

Alternative Methoden

Eine weitere Möglichkeit, die auf eine Eingabe wartet, ist die Verwendung einer InputBox. Diese Methode ist jedoch nicht direkt in einer Zelle integriert. Wenn Du dennoch eine Eingabe vom Benutzer benötigst, kannst Du Folgendes tun:

Sub EingabeWarten()
    Dim userInput As String
    userInput = InputBox("Bitte geben Sie einen Wert ein:")
    MsgBox "Du hast eingegeben: " & userInput
End Sub

Diese Methode nutzt die InputBox, um den Benutzer direkt nach einem Wert zu fragen, anstatt auf eine Zelle zu warten.


Praktische Beispiele

Ein praktisches Beispiel für die Verwendung des Codes könnte das Berechnen von Steuern auf Grundlage der Eingabe in Zelle A1 sein. Angenommen, Du möchtest eine Steuerberechnung durchführen, die auf dem eingegebenen Betrag basiert:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A1"), Target) Is Nothing Then
        Dim steuer As Double
        steuer = Range("A1").Value * 0.19 ' 19% Steuer
        MsgBox "Die Steuer beträgt: " & steuer
    End If
End Sub

Tipps für Profis

  • Verwende Application.EnableEvents = False und Application.EnableEvents = True, um zu verhindern, dass das Makro erneut ausgelöst wird, während es selbst Änderungen am Blatt vornimmt.
  • Experimentiere mit DoEvents, wenn Du komplexe Berechnungen hast, die die Benutzeroberfläche blockieren könnten.
  • Du kannst auch mehrere Zellen überwachen, indem Du die Intersect-Funktion entsprechend anpasst.

FAQ: Häufige Fragen

1. Kann ich das Makro auf andere Zellen als A1 anwenden? Ja, Du kannst die Zelle in der Range-Funktion anpassen, um auf andere Zellen zu reagieren.

2. Wie kann ich sicherstellen, dass das Makro nur bei bestimmten Eingaben reagiert? Du kannst Bedingungen in den Code einfügen, um nur auf spezifische Werte oder Formate zu reagieren.

3. Funktioniert dieser Code in Excel 2016? Ja, der Code ist kompatibel mit Excel 2016 und neueren Versionen.

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