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

vba makro ausführen wenn zellwert ändert

Forumthread: vba makro ausführen wenn zellwert ändert

vba makro ausführen wenn zellwert ändert
29.12.2019 10:41:43
Dagi
Hallo

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$r$6" Then
Call Makro1
End If
End Sub

Makro wird nich gestartet, sondern das Makro Fenster öffnet sich.
Was mache ich falsch?
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 10:44:49
Johannes
Hallo Dagi,
versuch es mal mit Intersect:
If Not Intersect(target, Range("R6")) is nothing then
Call Makro1
end if
Gruß,
Johannes
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 10:48:31
Dagi
Habe probiert.
Leider immer noch das gleiche,
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 10:49:51
Hajo_Zi
If Target.Address = "$R$6" Then

Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 10:51:34
Dagi
Leider immer noch das gleiche.
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 10:53:35
Hajo_Zi
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Gruß Hajo
Anzeige
HaJo, du nervst!...owT
29.12.2019 11:00:32
Oberschlumpf
warum keine Lösung
29.12.2019 11:02:59
Hajo_Zi
wenn Du schon auf fremde Rechner schaust?
Gruß Hajo
AW: warum keine Lösung
29.12.2019 11:08:01
Oberschlumpf
...du nervst jetzt nicht weniger
Anzeige
AW: warum keine Lösung
29.12.2019 11:18:43
Hajo_Zi
ich habe den Code geändert
If Target.Address = "$J$2" Then
wird J2 ausgewählt wird der Code ausgeführt.
Falls bei Veränderung
Private Sub Worksheet_Change(ByVal Target As Range)
Gruß Hajo
Anzeige
AW: warum keine Lösung
29.12.2019 11:21:25
Oberschlumpf
Hi Dagi,
deine Bsp-Datei (nachdem ich den Code aus dem Select- ins Change-Ereignis verschoben habe) tut bei mir auch das, was es soll.
Kann es sein, dass in deiner Originaldatei ein Fehler enthalten ist?
Mit Fehler meine ich nicht Codefehler, sondern dass die Datei vllt defekt ist.
DAS könnten wir allerdings wirklich nur überprüfen, wenn wir die Originaldatei sehen.
Und wenn du das Original nicht zeigen darfst, dann wüsste ich jetzt auch keine Idee mehr.
Ciao
Thorsten
Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 11:07:29
Oberschlumpf
Hi Dagi,
setz mal in Zeile
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
einen Haltepunkt (in die Zeile klicken + 1x F9 drücken = Zeile wird rot)
Jetzt ändere in Zelle R6 den Wert.
VBA-Editor öffnet sich, die rote Zeile ist markiert.
Führe mit F8 in Einzelschritten fort.
Markiere den Code Target.Address, klick mit rechte Maustaste auf die Markierung und wähle "Überwachung hinzufügen" aus.
Was genau wird im Überwachungsfenster angezeigt?
Wenn auch das nicht hilft, zeig uns bitte per Upload deine Datei mit all dem VBA-Code, der dir Probleme bereitet.
Ja, ich hätte auch ne Datei lieber per Upload, obwohl ich HaJo schrieb, dass er nervt.
Letzteres liegt daran, weil seine Beiträge dazu zu allgemein formuliert, dadurch nicht unbedingt verständlicher sind.
Ciao
Thorsten
Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 11:12:11
Herbert
Hallo Dagi,
du musst den Zellenbuchstaben in GROSSBUCHSTABEN schreiben! Das Makro liegt dabei im StandardModul "Modul1" (nicht evtl. im ClassModule "Tabelle1", etc.!)!
Bei mir hat der folgende Code einwandfrei funktioniert:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$R$6" Then
Call Makro1
End If
End Sub

Servus
Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 11:22:00
Werner
Hallo,
du solltest schon alle Beiträge lesen -Beitrag von Hajo.
Du benutzt das falsche Event.
Du mußt das Change-Event benutzen.
Private Sub Worksheet_Change(ByVal Target As Range)
Gruß Werner
Anzeige
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 11:27:27
Dagi
Sorry. Du hast recht.
Den Unterschiied habe ich nicht sehen.
Vielen Dank an euch alle!!
Gerne u. Danke für die Rückmeldung. o.w.T.
29.12.2019 11:28:23
Werner
AW: vba makro ausführen wenn zellwert ändert
29.12.2019 11:39:59
Herbert
Hallo Dagi,
deine Datei reagiert nicht auf "SelectionChange" oder "Change". Ich konnte leider nicht herausfinden warum! Probiers mal mit meiner angehängten Datei.
https://www.herber.de/bbs/user/134025.xlsm
Servus
Anzeige
ist doch gelöst....
29.12.2019 11:52:48
Werner
Hallo Herbert,
...er benutzte das falsche Event (unabhängig vom Großbuchstaben). Er will auf das Ändern der Zelle J2 reagieren also Change und nicht SelectionChange.
Und bei mir reagiert seine Datei entsprechend.
Gruß Werner
AW: ist doch gelöst....
29.12.2019 12:07:32
Herbert
Hallo Werner,
die Datei hat vorhin bei mir weder auf "Selection..." noch auf "Change" reagiert. Deshalb habe ich eine ganz neue erstellt. Aber wenn es jetzt geht ist ea ja umso besser!
Servus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA-Makro ausführen bei Zellwertänderung in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA-Makro auszuführen, wenn sich der Wert einer bestimmten Zelle ändert, musst Du den Worksheet_Change-Event verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das Arbeitsblatt, in dem Du das Makro implementieren möchtest, im Projekt-Explorer aus.

  3. Füge folgenden Code in das Code-Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Intersect(Target, Range("R6")) Is Nothing Then
           Call Makro1
       End If
    End Sub
  4. Speichere Deine Datei als Makro-fähige Arbeitsmappe (z.B. .xlsm).

  5. Ändere den Wert in Zelle R6 und überprüfe, ob das Makro wie gewünscht ausgeführt wird.


Häufige Fehler und Lösungen

Hier sind einige häufige Probleme und deren Lösungen:

  • Makrofenster öffnet sich anstelle der Ausführung: Stelle sicher, dass der Code im richtigen Modul (Standardmodul, nicht in einem Klassenmodul) platziert ist. Der Code sollte im Arbeitsblattmodul sein, nicht im Modul "Modul1".

  • Zellenadresse nicht großgeschrieben: Achte darauf, dass die Zellenadresse in Großbuchstaben eingegeben wird, z.B. "$R$6".

  • Code wird nicht ausgelöst: Überprüfe, ob die Datei als .xlsm gespeichert wurde und dass Makros in Deinen Excel-Einstellungen aktiviert sind.


Alternative Methoden

Falls Du eine andere Methode ausprobieren möchtest, kannst Du den SelectionChange-Event verwenden. Beachte jedoch, dass dieser Event nur reagiert, wenn die Zelle ausgewählt wird und nicht, wenn der Inhalt geändert wird. Hier ein Beispiel:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$R$6" Then
        Call Makro1
    End If
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie Du den Worksheet_Change-Event nutzen kannst:

  • Makro bei Änderung in mehreren Zellen: Wenn Du möchtest, dass das Makro auch bei Änderungen in anderen Zellen wie J2 oder A1 ausgeführt wird:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("R6,J2,A1")) Is Nothing Then
           Call Makro1
       End If
    End Sub
  • Ereignis für andere Blätter: Um das Makro auf einem anderen Arbeitsblatt auszuführen, musst Du den entsprechenden Arbeitsblattnamen angeben:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, ThisWorkbook.Sheets("Sheet1").Range("R6")) Is Nothing Then
           Call Makro1
       End If
    End Sub

Tipps für Profis

  • Verwende Haltepunkte zur Fehlersuche: Setze Haltepunkte im Code, um zu sehen, an welcher Stelle der Code eventuell nicht funktioniert. Dies hilft bei der Fehlersuche.

  • Überwachung hinzufügen: Nutze die Überwachungsfunktion im VBA-Editor, um den Wert von Target.Address zu beobachten, während das Makro ausgeführt wird.

  • Saubere Programmierung: Halte Deinen VBA-Code gut strukturiert und dokumentiert, um zukünftige Fehler zu vermeiden und die Wartung zu erleichtern.


FAQ: Häufige Fragen

1. Warum wird mein Makro nicht ausgeführt?
Stelle sicher, dass Du das richtige Ereignis (Worksheet_Change) verwendest und dass die Adresse der Zelle korrekt eingegeben ist.

2. Muss ich Excel neu starten, um Änderungen zu sehen?
In der Regel nicht. Speichere Deine Datei und teste die Änderungen direkt im VBA-Editor. Manchmal kann ein Neustart von Excel jedoch hilfreich sein, wenn Probleme weiterhin bestehen.

3. Wie kann ich sicherstellen, dass mein Makro nur bei bestimmten Bedingungen ausgeführt wird?
Du kannst zusätzliche Bedingungen in den If-Block einfügen, um die Ausführung des Makros gezielt zu steuern.

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