Excel - Makro ausführen, wenn Daten in eine Zelle eingegeben werden

Wenn ein Benutzer ein Makro in Microsoft Excel ausführen möchte, wenn festgestellt wird, dass die D10-Zelle ausgefüllt ist, muss das Arbeitsblattänderungsereignis im Excel-Arbeitsblatt und nicht im Modul verwendet werden. //www.4shared.com/file/89145449/43c8c38/Change_Value_of D10.htlml wird heruntergeladen und der ursprüngliche Code zum Ausführen des Makros festgelegt. Das Visual Basic-Symbol auf der Registerkarte Entwickler ist für Microsoft Excel-2007 ausgewählt. Nach dem Anzeigen des Arbeitsblatts, in dem der Code ausgeführt werden soll, werden Deklarationen und Allgemein nach unten verschoben und das Arbeitsblatt ausgewählt. Das Wort "Auswahl" wird aus dem "Private Sub Worksheet_SelectionChange" im Codefenster entfernt. Zum Ändern des Werts in der D10-Zelle ist '$ D $ 10' die festgelegte Zieladresse. Dies wiederum würde das Arbeitsblattänderungsereignis veranlassen, das Makro "aufzurufen".

  • Problem
  • Lösung
  • Hinweis

Problem

Ich habe ein Makro, das ausgeführt wird, wenn der Benutzer auf eine Schaltfläche klickt. Stattdessen soll das Makro ausgeführt werden, wenn die Zelle D10 gefüllt ist. Die Daten für D10 stammen aus einer Dropdown-Liste Datenüberprüfung, falls dies von Bedeutung ist. Das sollte einfach sein, aber ich kann es nicht herausfinden.

Lösung

Sie können Ihr Makro in Modul eins behalten. Sie müssen das Arbeitsblattänderungsereignis im Arbeitsblatt selbst verwenden, kein Modul. Lassen Sie mich erklären: Ich werde eine Datei zur Verfügung stellen, die der Erklärung entspricht. Im Arbeitsblatt ist der Bereich A5: A25 mit Zahlen gefüllt. Wenn Sie in Zelle D10 einen numerischen Wert eingeben, kopiert der Bereich G5: G10 den Wert in A5: A25. Wenn Sie den Wert in D10 löschen, wird der Inhalt des Bereichs G5: G10 gelöscht.

//www.4shared.com/file/89145449/43c8c38/Change_Value_of_D10.html

Was auch immer Ihr ursprünglicher Code war, um Ihr Makro auszuführen, bringen Sie diesen wieder in seine ursprüngliche Form.

Da Sie Excel 2007 verwenden, müssen Sie Folgendes tun:

  • 1) Klicken Sie auf die Registerkarte Entwickler.
  • 2) Klicken Sie auf das Visual Basic-Symbol.
  • 3) Doppelklicken Sie im linken Fensterbereich auf das Blatt, auf dem der Code ausgeführt werden soll.
  • 4) Im oberen Bereich des Codefensters sehen Sie nun (Allgemein) mit einem Dropdown-Menü und (Deklarationen) mit einem Dropdown-Menü.
  • 5) Klicken Sie auf die Dropdown-Liste (Allgemein) und wählen Sie Arbeitsblatt.
  • 6) Nun sehen Sie im Codefenster Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • 7) Entfernen Sie das Wort "Auswahl". Sie möchten "Auswahl" entfernen, da dies bedeutet, dass beim Klicken auf eine Zelle im Arbeitsblatt etwas passiert. Wollen Sie das nicht, wollen Sie in D10 einen Wert eintragen. Es sollte jetzt Private Sub Worksheet_Change (ByVal Target As Range) lesen
  • 8) Hier möchten Sie den Code ...

 Private Sub Worksheet_Change (ByVal Target As Range)

Wenn Target.Address = "$ D $ 10" Dann

Rufen Sie MyMacro an

End If

End Sub

  • 9) Wenn Sie den Wert in D10 ändern, ruft das Arbeitsblattänderungsereignis Ihr Makro auf.

Hinweis

Danke an WutUp WutUp für diesen Tipp im Forum.
Vorherige Artikel Nächster Artikel

Top-Tipps