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

Forumthread: VBA aktualisiert nicht automatisch

VBA aktualisiert nicht automatisch
Matjs
Hallo zusammen,
ich habe erst angefangen VBA zu benutzen und weiß daher nicht warum mein Macro nicht wirklich funktioniert. Wenn ich in dem Modul in der ersten Zeile drin bin und F5 ausführe wird mein Arbeitsblatt upgedated aber ich möchte es so haben dass wenn sich der Wert in der Zelle ändert automatisch das Makro funktioniert.
Hier ist mein Modul das ich aufgesetzt habe:
Sub auto_hide()
If Range("B3").Value = "Yes" Then
Rows("4:6").Select
Selection.EntireRow.Hidden = True
Range("B7").Select
Else
Rows("4:6").Select
Selection.EntireRow.Hidden = False
Range("B4").Select
End If
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 11:19:39
Oberschlumpf
Hi
In welcher Zelle?
Ist es A1?
Dann so:
Schreib ins richtige Ereignis diesen Code:

If Target.Address = "$A$1" Then
auto_hide
End If

In diesem Fall wird dein Makro "auto_hide" gestartet, sobald in Zelle A1 etwas geändert wird.
Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 11:26:02
Oberschlumpf
....das richtige Ereignis heißt:
Private S ub Worksheet_Change(ByVal Target As Range)
Schreib also:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
auto_hide
End If
End Sub
Ciao
Thorsten
AW: VBA aktualisiert nicht automatisch
19.05.2010 12:38:13
Matjs
besten Dank für Deine rasche Antwort.
Hierbei gibt es nur ein kleines Problem dass ich nun nicht mehr auf die Zelle B3 komme um den Eintrag zu ändern damit die Zeilen 4,5 und 6 wieder sichbar werden......
Dies soll ein Dokument geben dass von Benutzern geändert wird und Abhängig von gewissen Zellen werden verschiedene Zeilen ausgeblendet da diese dann nicht verwendet werden..
z.B
A1 Hast Du einen PC? Abfrage in A2
Abhängig ob in Zelle A2 "ja" oder "Nein" werden z.B. die nächsten 3 Zeilen ausgeblendet...
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 13:36:28
Oberschlumpf
...hier (in diesem Forum) wird zu Beginn jeden Beitrages gern eine Begrüßung gesehen...
Hi Name?
Zeig uns doch mal deine Datei (oder Bsp).
Denn nur mit deinen "Häppchen", die du uns anbietest, "hangeln" wir uns nur von Frage - Lösung - nächste Frage - nächste Lösung...usw
Da wäre doch ne Datei von dir viel besser - zumal wir dann nicht immer alles "nachbasteln" müssen.
Ciao
Thorsten
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 13:58:19
Matjs
Hallo Thorsten,
besten Dank für den Hinweis. Nachdem ich mich heute erst hier angemeldet habe kenne ich mich noch nicht so gut aus hier, aber das wird sich ändern....
ich habe meine Excel Datei hochgeladen und hier ist der Link
https://www.herber.de/bbs/user/69646.xlsm
Martin
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 14:15:22
Oberschlumpf
Hi Martin
Siehst du...mit Bsp-Datei geht alles viel einfacher,schneller,besser,usw
Denn du hast "meinen" Code NICHT ins Change- sondern ins Selection_Change-Ereignis eingetragen.
Aber diesen Fehler hätten wir ohne deine Datei vielleicht erst viel, viel später herausgefunden.
Unterschied Change- / ins Selection_Change-Ereignis
Selection_Change-Ereignis
...wird ausgeführt, sobald eine andere Zelle ausgewählt wird
Change-Ereignis
....wird ausgeführt, sobald der Wert einer Zelle geändert wird
füge den Code also ins
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
Row_hide
End If
End Sub

ein und lösche das
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

komplett
Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA aktualisiert nicht automatisch
19.05.2010 15:59:17
Matjs
Hallo Thorsten,
Du bist einfach der Beste..... besten Dank für Deine Hilfe.... so funktioniert es nun.....
weiterhin viel Erfolg und nochmals meinen besten Dank...
Martin
Ich tippe mal Du willst B3 prüfen ...
19.05.2010 11:34:56
Matthias
Hallo
...sollte das so sein, dann
machs wie Thorsten vorgeschlagen hat und ersetzt "$A$1" durch "$B$3"
Im Übrigen fehlt in Deinem hier geposteten Code eindeutig das End Sub
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA für automatische Aktualisierung in Excel


Schritt-für-Schritt-Anleitung

Um dein Makro so einzurichten, dass es automatisch aktualisiert, wenn sich der Wert in einer bestimmten Zelle ändert, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Wähle das richtige Arbeitsblatt: Doppelklicke auf das Arbeitsblatt, in dem du das Makro verwenden möchtest.

  3. Füge den Code ein: Kopiere und füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$B$3" Then
            auto_hide
        End If
    End Sub
  4. Definiere die auto_hide-Subroutine: Stelle sicher, dass sich der folgende Code in einem Modul befindet:

    Sub auto_hide()
        If Range("B3").Value = "Yes" Then
            Rows("4:6").EntireRow.Hidden = True
        Else
            Rows("4:6").EntireRow.Hidden = False
        End If
    End Sub
  5. Speichere deine Arbeit: Vergiss nicht, deine Excel-Datei als Makro-fähige Datei (.xlsm) zu speichern.


Häufige Fehler und Lösungen

  • Makro wird nicht ausgeführt: Überprüfe, ob der Code im richtigen Ereignis (Worksheet_Change) platziert ist. Ein häufiger Fehler ist, den Code im Selection_Change-Ereignis zu verwenden.
  • Excel aktualisiert nicht automatisch: Stelle sicher, dass die Zelle, die du überwachen möchtest, korrekt angegeben ist (z.B. "$B$3").
  • Zellen nicht zugänglich: Wenn du das Makro so einstellst, dass bestimmte Zeilen ausgeblendet werden, könntest du den Zugriff auf die Zelle, die du ändern möchtest, verlieren. Achte darauf, dass das Makro die Zeilen nur ausblendet, wenn die Bedingung erfüllt ist.

Alternative Methoden

Wenn du möchtest, dass Excel Felder automatisch aktualisiert, kannst du folgende Alternativen in Betracht ziehen:

  • Verwendung von Formeln: Anstatt VBA zu verwenden, könntest du Formeln in Excel nutzen, um die Sichtbarkeit von Zeilen zu steuern. Zum Beispiel mit der Funktion WENN.
  • Ereignisprozeduren: Nutze andere Ereignisse wie Worksheet_SelectionChange, um auf Änderungen zu reagieren, aber beachte, dass dies nicht dasselbe ist wie eine Änderung des Zellwerts.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du dein Makro anpassen kannst:

  • Frage in Zelle A1:

    • Inhalt: "Hast du einen PC?"
  • Bedingen in Zelle A2:

    • Wenn "Ja" in A2 steht, sollen Zeilen 4 bis 6 ausgeblendet werden:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$A$2" Then
            If Range("A2").Value = "Ja" Then
                Rows("4:6").EntireRow.Hidden = True
            Else
                Rows("4:6").EntireRow.Hidden = False
            End If
        End If
    End Sub

Tipps für Profis

  • F5 automatisch drücken: Wenn du den Code testen möchtest, kann es hilfreich sein, F5 im VBA-Editor zu drücken, um sicherzustellen, dass alles funktioniert. Beachte jedoch, dass dies nicht die automatische Aktualisierung im Excel-Dokument selbst simuliert.
  • Verwende Application.EnableEvents: Um zu verhindern, dass dein Makro endlos schließt und öffnet, kannst du Application.EnableEvents = False und Application.EnableEvents = True um deinen Code herum verwenden.

FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht? Überprüfe, ob der Code im richtigen Ereignis eingefügt wurde und ob die Zelladressen korrekt sind.

2. Kann ich mehrere Zellen überwachen? Ja, du kannst mehrere If-Bedingungen hinzufügen oder eine Select Case-Anweisung verwenden, um verschiedene Zellen zu überprüfen.

3. Was mache ich, wenn Excel aktualisiert nicht automatisch? Stelle sicher, dass die Berechnung auf 'Automatisch' eingestellt ist. Gehe zu Formeln > Berechnungsoptionen und wähle Automatisch.

4. Wie kann ich die Sichtbarkeit von mehr als drei Zeilen steuern? Erweitere einfach die Rows("x:y").EntireRow.Hidden = True-Anweisung, um die gewünschten Zeilen auszublenden.

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