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

Forumthread: VBA-Überprüfe ob alle Zellenwerte gleich sind

VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 14:39:05
Monika
Hey,
Ich würde gerne ein Makro schreiben welches prüft ob in einer Tabelle Spalte 1 alle Werte gleich sind. Falls dies der Fall ist soll dann mit dieser Tabelle weiter gearbeitet werden.
Mein Makro bis jetzt:
Set Bereich = Range("Tabelle1[Spalt" & Chr(10) & "'[µm']]")
For Zelle = 1 To Range("Tabelle1[Spalt" & Chr(10) & "'[µm']]").Rows.Count
If Bereich.Cells(Zelle, 1) = Bereich.Cells(1, 1) Then
MsgBox "Identisch"
Else
MsgBox "nicht identisch"
End If
Next Zelle
End Sub
Natürlich müsste ich dann die MsgBox mit der Aktion zur Bearbeitung der Tabelle ersetzten.
Aber mein Problem ist, dass so jede Zeile einzeln überprüft wird und nicht alle zusammen.
ich hoffe das war verständlich =)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 14:45:22
Daniel
Hi
um zu überprüfen, ob in einer Spalte alle Werte (außer den Leerzellen) gleich sind, kannst du folgendes verwenden, um alle Werte auf einmal zu prüfen:
if Worksheetfunction.CountA(Columns(1)) = Worksheetfunction.CountIf(Columns(1), Cells(1, 1))  _
Then
Msgbox "Identisch"
else
Msgbox "nicht identisch"
end if
CountA entspricht Anzahl2 und zählt alle Zellen, die einen Wert oder eine Formel enthalten
CountIF entspricht ZähelnWenn und zählt wie oft ein bestimmter Wert im Zellbereich vorkommt.
Gruß Daniel
Anzeige
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 15:04:30
Monika
und wie verknüpf ich das dann mit meiner Tabelle ?
ich müsste dann ja i.wie das Columns ersetzen oder ?
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 15:08:47
Daniel
hi
für Columns(1) setzt du halt die Range ein, die du durchsuchen willst und für Cells(1, 1) eben die erste Zelle dieses Bereichs.
das hast du ja schon.
Das musst du jetzt nur noch entsprechen in die Worksheetfunctions einbauen.
Gruß Daniel
Anzeige
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 15:14:51
Monika
Ich habe jetzt Columns(1) durch Bereich ersetzt und Cells(1,1) durch Bereich.Cells(1,1)
Bereich ist wie vorhin definiert
dann kommt bei mir aber immer der Laufzeitfehler 1004
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
14.12.2016 22:47:43
Daniel
Hi
dann lade bitte deine Datei hoch.
ich muss mir mal ansehen, was du da fabriziert hast.
Gruß Daniel
Anzeige
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
15.12.2016 12:43:23
Monika
Hab doch schon geschrieben dass es funktioniert hat :)aber danke
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
15.12.2016 13:09:57
Daniel
nun, du hattest geschrieben:
"dann kommt bei mir aber immer der Laufzeitfehler 1004 "
bei mir kommt ein Laufzeitfehler dann, wenn es nicht funktioniert.
Gruß Daniel
AW: VBA-Überprüfe ob alle Zellenwerte gleich sind
15.12.2016 13:27:43
Monika
Entschuldigung
ich hatte eig. 5 min später einen weiteren Kommentar geschrieben dass es funktioniert
Wie ich aber gerade gesehen habe hatte da i.was nicht funktioniert und er wurde nicht hochgeladen
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Überprüfung von Zellenwerten in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel zu überprüfen, ob alle Zellenwerte in einer bestimmten Spalte gleich sind, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke im Menü auf Einfügen > Modul.

  3. Code einfügen: Füge den folgenden VBA-Code in das Modul ein:

    Sub PrüfenObAlleWerteGleichSind()
       Dim Bereich As Range
       Set Bereich = Range("Tabelle1[Spalt1]") ' Ersetze dies durch den gewünschten Bereich
    
       If WorksheetFunction.CountA(Bereich) = WorksheetFunction.CountIf(Bereich, Bereich.Cells(1, 1)) Then
           MsgBox "Alle Zellen sind identisch."
       Else
           MsgBox "Nicht alle Zellen sind identisch."
       End If
    End Sub
  4. Anpassen des Bereichs: Stelle sicher, dass du den Bereich durch die spezifische Spalte ersetzt, die du überprüfen möchtest.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn der angegebene Bereich nicht korrekt ist oder nicht existiert. Überprüfe den Bereich, den du in Set Bereich = Range(...) angegeben hast.
  • Falsche Zellenreferenz: Wenn du Cells(1, 1) verwendest, stelle sicher, dass dies auf die richtige Zelle verweist. Du kannst es durch Bereich.Cells(1, 1) ersetzen, um den ersten Wert des definierten Bereichs zu verwenden.

Alternative Methoden

Eine weitere Möglichkeit, um zu prüfen, ob alle Zellen in einer Spalte den gleichen Inhalt haben, ist die Verwendung von Formeln in Excel:

  1. Hilfsspalte verwenden: Füge in einer angrenzenden Zelle die folgende Formel ein:

    =WENN(ZÄHLENWENN(A:A;A1)=ANZAHL(A:A);"Identisch";"Nicht identisch")

    Ersetze A:A durch die entsprechende Spalte.

  2. Bedingte Formatierung: Du kannst auch die bedingte Formatierung verwenden, um Zellen hervorzuheben, die sich von der ersten Zelle unterscheiden.


Praktische Beispiele

Hier ist ein praktisches Beispiel, um zu zeigen, wie das VBA-Skript funktioniert:

  • Angenommen, in Tabelle1 hast du in Spalte A folgende Werte:

    A
    10
    10
    10
    10
  • Wenn du das Makro ausführst, wird die Meldung "Alle Zellen sind identisch." angezeigt. Ändere einen Wert in Spalte A, z.B. auf 20, und führe das Makro erneut aus. Es wird "Nicht alle Zellen sind identisch." angezeigt.


Tipps für Profis

  • Fehlerbehandlung einfügen: Um das Makro robuster zu machen, kannst du eine Fehlerbehandlung hinzufügen:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Dynamische Bereiche: Wenn du mit dynamischen Daten arbeitest, könntest du den Bereich automatisch ermitteln, indem du Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) verwendest.


FAQ: Häufige Fragen

1. Wie prüfe ich, ob Zellen in Excel den gleichen Inhalt haben?
Du kannst die oben genannten VBA-Skripte oder Excel-Formeln verwenden, um zu überprüfen, ob alle Zellen in einem bestimmten Bereich identisch sind.

2. Was bedeutet der Laufzeitfehler 1004?
Dieser Fehler tritt auf, wenn das VBA-Skript auf ein nicht vorhandenes Objekt zugreift. Überprüfe deinen Bereich und die Zellreferenzen, um sicherzustellen, dass sie korrekt sind.

3. Kann ich das Makro auch in Excel Online verwenden?
Leider kannst du VBA-Makros nur in Desktop-Versionen von Excel verwenden. Excel Online unterstützt diese Funktion nicht.

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