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

Counter durch Änderung vom Zelleninhalt hochzählen

Forumthread: Counter durch Änderung vom Zelleninhalt hochzählen

Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:09:37
Andre
Hallo zusammen,
ich möchte das wenn sich der Inhalt einer Zelle ändert, in einer anderen Zelle der Counter immer um 1 erhöht.
Zelle in der der Inhalt geändert wird: F23
Zelle in der der Counter um +1 erhöht werden soll: I16
Leider bin ich, was VBA angeht kompletter Anfänger, und wäre über jegliche Hilfe dankbar.
LG Andre
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:18:05
Matthias
Hi
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "F23" Then
Cells(16, "I") = Cells(16, "I") + 1
End If
End Sub
Gruß Matthias
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:45:20
Andre
Hallo Matthias,
vielen Dank für das Script, es funktioniert so wie es soll.
LG Andre
Anzeige
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:31:55
Daniel
Hi
Steht in F23 eine Formel oder wird der Wert manuell vom Anwender eingetragen?
Gruß Daniel
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:40:31
Andre
Hi Daniel,
der Inhalt der Zelle F23 wird manuell durch den Anwender geändert.
LG Andre
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 12:45:03
GerdL
Moin Andre!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "F23" Then
If Not IsEmpty(Target) Then Cells(16, 9) = Cells(16, 9) + 1
End If
End Sub

Gruß Gerd
Anzeige
AW: Counter durch Änderung vom Zelleninhalt hochzählen
03.10.2019 13:18:36
Daniel
Na dann passt ja die Lösung von Matthias
Allerdings würde ich die Prüfung
If Target.Address(0, 0) = "F23" Then

Durch folgendes ersetzen würde
If not Intersect(Target, Range("F23")) is Nothing then

Weil es sein kann, dass der Anwender mehrere Zellen markiert und gleichzeitig ändert. So eine Änderung würde die erste Abfrage nicht erfassen.
Gruß Daniel
Anzeige
AW: Counter mit Löschungen hochzählen? o.T.
03.10.2019 13:33:05
GerdL
.
Natürlich
03.10.2019 13:51:15
Daniel
1. Eine Löschung ist eine Änderung.
2. Die erstgenannte Prüfung zählt Löschungen ja auch mit, wenn nur die Zelle F23 gelöscht wird
3. man kann auch Werte in mehrere Zellen gleichzeitig eintragen.
;
Anzeige
Anzeige

Infobox / Tutorial

Excel Zähler hochzählen bei Zelländerung


Schritt-für-Schritt-Anleitung

Um einen Excel Counter zu erstellen, der beim Ändern des Inhalts einer Zelle hochzählt, kannst du den folgenden VBA-Code verwenden. Dieser Code muss in das VBA-Modul des Arbeitsblatts eingefügt werden.

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

  2. Suche im Projekt-Explorer das Arbeitsblatt, auf dem du den Zähler implementieren möchtest.

  3. Doppelklicke auf das Arbeitsblatt, um den Code-Editor zu öffnen.

  4. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("F23")) Is Nothing Then
           If Not IsEmpty(Target) Then
               Cells(16, 9) = Cells(16, 9) + 1
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Jetzt wird bei jeder Änderung des Inhalts in Zelle F23 der Zähler in Zelle I16 um 1 erhöht.


Häufige Fehler und Lösungen

  • Fehler: Zähler erhöht sich nicht.

    • Stelle sicher, dass der VBA-Code im richtigen Arbeitsblatt-Modul eingefügt wurde.
  • Fehler: Zähler zählt nicht bei Löschungen.

    • Verwende den aktualisierten Code mit If Not IsEmpty(Target) um sicherzustellen, dass auch Löschungen gezählt werden.

Alternative Methoden

Eine alternative Methode ist das Nutzen von Excel-Formeln, jedoch ist diese nicht so flexibel wie ein VBA-Zähler. Du kannst auch eine Formel verwenden, um die Anzahl der Änderungen zu zählen, aber das funktioniert nur, wenn die Änderungen in einem bestimmten Bereich stattfinden.


Praktische Beispiele

Angenommen, du möchtest einen Excel Zähler für mehrere Zellen implementieren:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F23:F30")) Is Nothing Then
        If Not IsEmpty(Target) Then
            Cells(16, 9) = Cells(16, 9) + 1
        End If
    End If
End Sub

Dieser Code zählt Änderungen in den Zellen F23 bis F30.


Tipps für Profis

  • Experimentiere mit weiteren Bedingungen, um den Zähler nur unter bestimmten Umständen zu erhöhen.
  • Du kannst den Code erweitern, um unterschiedliche Zähler für verschiedene Zellen zu haben.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Zähler zurücksetzen?
Antwort: Du kannst eine neue Subroutine im VBA-Editor erstellen, um den Zähler in Zelle I16 auf 0 zu setzen.

2. Frage
Funktioniert dieser Code in allen Excel-Versionen?
Antwort: Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, solange Makros aktiviert sind.

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