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

Forumthread: Doppelte zählen per VBA

Doppelte zählen per VBA
17.02.2007 01:12:55
Ronaldo
Hallo,
in meiner Spalte A befinden sich über 500 Einträge. Z.B.
10999
23000
23000
34544
25500
24000
24000
24000
Hinter jede Zahl soll jetzt in Spalte B stehen, wie oft diese Zahl vorkommt. Im Beispiele wäre das Ergebnis:
10999 1
23000 2
23000
34544 1
25500 1
24000 3
24000
24000
Ich kann das nicht per Formel lösen, da das ein Teil einer Prozedur sein soll und die Anzahl der Spalten in A sich immer wieder verändern können.
Hat jemand eine Lösung hierfür ?
Gruss
Ronaldo
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte zählen per VBA
17.02.2007 02:15:23
ChrisL
Hallo Ronaldo

Sub t()
Dim iZeile As Long, LetzteZeile As Long
LetzteZeile = Range("A65536").End(xlUp).Row
For iZeile = 1 To LetzteZeile
If WorksheetFunction.CountIf(Range("A1:A" & iZeile), Cells(iZeile, 1)) = 1 Then _
Cells(iZeile, 2) = WorksheetFunction.CountIf(Columns(1), Cells(iZeile, 1))
Next iZeile
End Sub

Gruss
Chris
Anzeige
AW: Doppelte zählen per VBA
17.02.2007 10:42:00
Ronaldo
Hallo Chris,
es funktioniert einwandfrei ! Super !
Vielen Dank für Deine Hilfe !
Gruss
Ronaldo
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Doppelte Einträge in Excel mit VBA zählen


Schritt-für-Schritt-Anleitung

Um doppelte Einträge in Excel mithilfe von VBA zu zählen, kannst du das folgende Makro verwenden. Dieses Skript durchläuft die Einträge in Spalte A und zählt, wie oft jeder Eintrag vorkommt. Das Ergebnis wird in Spalte B angezeigt.

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub t()
    Dim iZeile As Long, LetzteZeile As Long
    LetzteZeile = Range("A65536").End(xlUp).Row
    For iZeile = 1 To LetzteZeile
        If WorksheetFunction.CountIf(Range("A1:A" & iZeile), Cells(iZeile, 1)) = 1 Then _
            Cells(iZeile, 2) = WorksheetFunction.CountIf(Columns(1), Cells(iZeile, 1))
    Next iZeile
End Sub
  1. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.
  2. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Nun solltest du in Spalte B die Anzahl der Vorkommen jedes Wertes aus Spalte A sehen. Dieses Skript eignet sich besonders gut, wenn du mit einer großen Anzahl von Einträgen arbeitest und eine dynamische Lösung benötigst.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass du die richtige Arbeitsmappe und das richtige Arbeitsblatt ausgewählt hast, bevor du das Makro ausführst.
  • Fehler: "Typen unverträglich"

    • Lösung: Überprüfe, ob in Spalte A nur numerische Werte stehen. Wenn nicht, kann dies zu Problemen führen.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Funktion ZÄHLENWENN in Excel nutzen, um die doppelten Einträge zu zählen. Setze in Spalte B die folgende Formel ein:

=ZÄHLENWENN(A:A; A1)

Ziehen die Formel nach unten, um sie auf den Rest der Spalte anzuwenden. Diese Methode ist jedoch statisch und eignet sich weniger für dynamische Datenmengen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

10999
23000
23000
34544
25500
24000
24000
24000

Nach dem Ausführen des VBA-Makros erhältst du in Spalte B:

10999 1
23000 2
23000 2
34544 1
25500 1
24000 3
24000 3
24000 3

Diese Ausgabe zeigt dir, wie oft jeder Wert vorkommt, und ist besonders nützlich, wenn du mit großen Datensätzen arbeitest.


Tipps für Profis

  • Um die Leistung zu verbessern, kannst du den Bildschirm während der Ausführung des Makros deaktivieren:
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True
  • Überlege, ob du das Makro so anpassen möchtest, dass es nur die einzigartigen Werte in einer neuen Spalte oder einem neuen Arbeitsblatt anzeigt.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um die Ergebnisse in einem anderen Arbeitsblatt zu speichern?
Ja, du kannst den Code anpassen, indem du das Zielblatt im Code angibst. Ersetze Cells(iZeile, 2) durch Sheets("Zielblatt").Cells(iZeile, 2).

2. Funktioniert dieses Makro in Excel 365?
Ja, das VBA-Skript funktioniert in Excel 365 und anderen Versionen, die VBA unterstützen. Stelle sicher, dass Makros in deinen Excel-Einstellungen 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