Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - eigene Funktion automatisch aktualisieren

VBA - eigene Funktion automatisch aktualisieren
25.10.2005 08:20:37
Wissensdurst
Hallo Leute,
mich drückt seit gestern mal wieder der Schuh ;P Folgendes:
In Zelle A1 soll die Anzahl (nicht der Wert) aller Zellen im Bereich A2-A100 angezeigt werden, welche rote Hintergrundfarbe haben und nicht den Buchstaben O enthalten.
Bis jetzt hab ich es schonmal soweit geschafft, dass die roten Felder gezählt werden (Farbsumme), aber ich hab nirgends gefunden, wie ich eine if-Abfrage mit zwei Bedingungen "füttere" - zumindest hat das, was ich gefunden habe, nicht funktioniert.
Mein zweites Problem liegt bei der Aktualisierung. Wird ein neues Feld rot markiert, wird in A1 erst hochgezählt, sobald ich F9 drücke oder nach Abspeichern und Wiederaufrufen der Datei. Das bräuchte ich eigentlich automatisch.
Im voraus schon einmal vielen Dank für Euere Antworten (auch falls Ihr nur einen Teil beantworten könnt)
Mit freundlichen Grüßen
Wissensdurst
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - eigene Funktion automatisch aktualisieren
25.10.2005 08:28:23
Hajo_Zi
Hallo Hans Bärbel,
Farbveränderungen lösen kein Ereignis aus, da bleibt nur F9.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: VBA - eigene Funktion automatisch aktualisieren
25.10.2005 09:15:18
Wissensdurst
Hallo Hajo,
da Du ja quasi auch der Urheber meiner Farbsummenfunktion bist, könntest Du mir eventuell auch mit der 2. Bedingung in dieser if-Abfrage weiterhelfen.
Vor allem wie geht es, in VBA eine Aussage zu verneinen, mit NICHT("O")?
Ich stehe da ehrlich gesagt etwas auf dem Schlauch.
Wäre nett, wenn Du mir nochmal antworten würdest.
Gruß Hans (Bärbel?)
Anzeige
AW: VBA - eigene Funktion automatisch aktualisieren
25.10.2005 10:21:56
Hajo_Zi
Hallo Hans Bärbel,
If Zelle.Interior.ColorIndex = Farbe And UCase(Zelle) "0" Then
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA - eigene Funktion automatisch aktualisieren
25.10.2005 11:19:13
Wissensdurst
Super Hajo,
vielen Dank, klappt einwandfrei ;P
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Eigene Funktion in Excel automatisch aktualisieren


Schritt-für-Schritt-Anleitung

Um eine eigene Funktion in Excel zu erstellen, die automatisch aktualisiert, kannst du die folgenden Schritte befolgen. Diese Anleitung basiert auf VBA (Visual Basic for Applications) und hilft dir, die Anzahl der roten Zellen in einem bestimmten Bereich zu zählen, während sie gleichzeitig eine Bedingung für die Buchstaben enthält.

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul einfügen:

    • Klicke auf Einfügen > Modul.
  3. Code für die Funktion eingeben:

    • Füge folgenden Code in das Modul ein:
    Function ZähleRoteZellen(Bereich As Range) As Long
       Dim Zelle As Range
       Dim Zähler As Long
       Zähler = 0
    
       For Each Zelle In Bereich
           If Zelle.Interior.ColorIndex = 3 And UCase(Zelle.Value) <> "O" Then
               Zähler = Zähler + 1
           End If
       Next Zelle
    
       ZähleRoteZellen = Zähler
    End Function
  4. Funktion in Excel verwenden:

    • Gehe zurück zu deinem Arbeitsblatt und gib in Zelle A1 die Funktion ein: =ZähleRoteZellen(A2:A100)
  5. Automatische Aktualisierung:

    • Da Farbänderungen keine Ereignisse auslösen, musst du die Arbeitsmappe so einstellen, dass sie bei jeder Änderung automatisch aktualisiert wird. Dazu kannst du Application.Volatile in deiner Funktion hinzufügen, um die Funktion bei jeder Berechnung neu zu berechnen.
    Function ZähleRoteZellen(Bereich As Range) As Long
       Application.Volatile
       ' (Rest des Codes bleibt gleich)
    End Function

Häufige Fehler und Lösungen

  • Funktion wird nicht aktualisiert: Stelle sicher, dass du Application.Volatile in deiner Funktion verwendest. Wenn die Zellen nicht automatisch aktualisiert werden, kann es daran liegen, dass Excel die Berechnung nicht auslöst.
  • Falsche Zählung: Überprüfe, ob die Hintergrundfarbe der Zellen tatsächlich die erwartete Farbe hat (ColorIndex = 3 für Rot).
  • Zelle zeigt #NAME? an: Vergewissere dich, dass du die Funktion korrekt eingegeben hast und dass der VBA-Code gespeichert ist.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du die Funktion ZÄHLENWENN kombinieren, um ähnliche Ergebnisse zu erzielen, jedoch ohne die Möglichkeit, die Zellfarbe zu berücksichtigen:

=ZÄHLENWENN(A2:A100; "<>O") - ZÄHLENWENN(A2:A100; "O")

Diese Methode zählt jedoch nur die Zellen, die nicht "O" sind, und berücksichtigt keine Farben.


Praktische Beispiele

Angenommen, du hast folgenden Bereich in A2:A100:

  • A2: Rot
  • A3: Blau
  • A4: Rot
  • A5: O (rot)
  • A6: Rot

Die Formel =ZähleRoteZellen(A2:A6) würde in Zelle A1 die Zahl 3 ausgeben, da 3 rote Zellen vorhanden sind, die nicht den Buchstaben "O" enthalten.


Tipps für Profis

  • Verwende Application.EnableEvents: Um die Aktualisierung von Zellen zu steuern, kannst du diese Eigenschaft nutzen, um Ereignisse in VBA zu aktivieren oder zu deaktivieren.
  • Benutze benannte Bereiche: Erstelle benannte Bereiche in Excel, um die Lesbarkeit deiner Formeln zu verbessern und die Wartung zu erleichtern.
  • Integration in andere Funktionen: Du kannst die eigene Funktion in Kombination mit anderen Excel-Funktionen verwenden, um komplexere Analysen durchzuführen.

FAQ: Häufige Fragen

1. Wie kann ich eine eigene Funktion in Excel erstellen, ohne VBA zu verwenden?
Es ist nicht möglich, eine eigene Funktion in Excel zu erstellen, ohne VBA zu verwenden, wenn du spezifische Bedingungen wie Zellfarben berücksichtigen möchtest.

2. Warum aktualisieren sich meine Zellen nicht automatisch?
Farbänderungen lösen in Excel keine Berechnungen aus. Du musst entweder F9 drücken oder Application.Volatile in deiner Funktion verwenden, um die Funktion bei jeder Berechnung neu zu berechnen.

3. Kann ich die automatische Aktualisierung für andere Bedingungen nutzen?
Ja, du kannst die gleiche Logik in deiner eigenen Funktion verwenden, um verschiedene Bedingungen zu prüfen, jedoch bleibt die Farbprüfung auf VBA beschränkt.

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