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

Forumthread: bestimmte Zelle über VBA aktualisieren/neu berechn

bestimmte Zelle über VBA aktualisieren/neu berechn
13.08.2013 08:38:13
Dominic
Hallo,
zur Zeit nutze ich folgendes Skript, um die automatische Zwischen Berechnungen und Bildschirmaktualisierungen auszuschalten.
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Nun ist es jedoch so, dass ich über ein Drop-Down Menü (Formularsteuerelement) bestimmte Zeilen ein- und ausblenden kann, die keine neu-Berechnung des gesamten Arbeitsblattes erfordern.
Allerdings müssen je nach Drop Down Menü 1 bis 3 Zellen "aktualisiert" werden.
Also die Werte die diese Zellen nach der Veränderung des Drop Down Menüs aufweisen sind falsch, und wenn ich in die Bearbeitungszeile klicke und "Enter" drücke, berechnet / aktualisiert Excel diesen Wert neu.
Mit dem Makro Rekorder gelange ich auf folgendes Skript:
Range("E7:H7").Select
ActiveCell.FormulaR1C1 = _
"=IF(R5C2=1,""Anzeige wählen!"",INDEX(Daten!R[-5]C[10]:R[1]C[10],R5C2))"
Range("E8").Select
Das sieht für mich jedoch so aus, dass Excel mittels VBA diese Formel in die Zelle neu schreibt, stimmt das? Ist das nicht ein wenig umständlich? Gibts keine leichtere Methode, dass Excel diesen Zellwert aktualisiert ohne die ganze Mappe/ oder das ganze Arbeitsblatt neu zu berechnen?

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Zelle über VBA aktualisieren/neu berechn
13.08.2013 09:17:41
Luschi
Hallo Dominic,
konsultiere doch mal die Excel-Vba-Hilfe zu diesem Thema: Worksheet.Calculate
Da wirst Du geholfen.
Gruß von Luschi
aus klein-Paris
Deine Vermutung, daß 'ActiveCell.FormulaR1C1' die definierte Formel in die Zelle schreibt ist korrekt, das ist ja auch die Aufgabe dieses Befehls.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zelle über VBA aktualisieren


Schritt-für-Schritt-Anleitung

Um eine bestimmte Zelle über VBA zu aktualisieren, ohne die gesamte Arbeitsmappe neu zu berechnen, kannst Du die folgende Methode verwenden. Diese Vorgehensweise nutzt den Worksheet.Calculate-Befehl, um gezielt Zellen zu aktualisieren.

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.

  3. Schreibe den folgenden Code:

    Sub UpdateCell()
       ' Berechnen der spezifischen Zelle
       Worksheets("DeinBlattName").Range("E7").Calculate
    End Sub
  4. Passe "DeinBlattName" und den Zellbereich "E7" nach Deinen Bedürfnissen an.

  5. Führe das Makro aus, um die Zelle zu aktualisieren.

Mit dieser Methode kannst Du gezielt Zellen aktualisieren, ohne die gesamte Tabelle neu zu berechnen.


Häufige Fehler und Lösungen

  • Fehler: Zelle wird nicht aktualisiert

    • Lösung: Stelle sicher, dass Du die richtige Zellreferenz verwendet hast und dass die Berechnungseinstellungen in Excel auf "Automatisch" gesetzt sind.
  • Fehler: Makro funktioniert nicht

    • Lösung: Überprüfe, ob das Makro korrekt in einem Modul platziert ist und ob Du die richtigen Berechtigungen hast, um Makros auszuführen.

Alternative Methoden

Eine Alternative zur Aktualisierung von Zellen ist die Verwendung von Range.Formula anstelle von ActiveCell.FormulaR1C1. Hierbei wird die Formel direkt gesetzt, ohne die Zelle vorher auszuwählen:

Sub SetFormula()
    Worksheets("DeinBlattName").Range("E7").Formula = "=IF(R5C2=1,""Anzeige wählen!"",INDEX(Daten!R[-5]C[10]:R[1]C[10],R5C2))"
End Sub

Diese Methode ist effizienter und vermeidet unnötige Selektionen.


Praktische Beispiele

  1. Einfaches Update einer Zelle:

    Sub UpdateSimple()
       Worksheets("Tabelle1").Range("A1").Value = 100
    End Sub
  2. Formel in eine Zelle einfügen:

    Sub InsertFormula()
       Worksheets("Tabelle1").Range("B1").Formula = "=SUM(A1:A10)"
    End Sub

Beide Beispiele zeigen, wie Du Zellen aktualisieren oder Formeln setzen kannst, ohne die gesamte Arbeitsmappe zu beeinträchtigen.


Tipps für Profis

  • Nutze Application.Calculation um temporär die Berechnung zu deaktivieren, wenn Du mehrere Zellen aktualisieren musst.

    Application.Calculation = xlCalculationManual
    ' Deine Aktualisierungen hier
    Application.Calculation = xlCalculationAutomatic
  • Verwende DoEvents, um sicherzustellen, dass Excel während der Ausführung von langen Makros reaktionsfähig bleibt.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen gleichzeitig aktualisieren? Du kannst eine Schleife verwenden, um über die gewünschten Zellen zu iterieren und sie zu aktualisieren.

2. Was ist der Unterschied zwischen Calculate und CalculateFull? Calculate berechnet nur die Zellen, die von Änderungen betroffen sind, während CalculateFull das gesamte Arbeitsblatt neu berechnet.

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