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

Forumthread: Abfrage wenn bestimmter wert in Spalte dann...

Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 13:59:00
Jürgen
Hallo Excel-Forum,
habe glaube ich ein total dämliches Problem. Ich möchte Prüfen, ob der Eintrag Fehler in Spalte I vorkommt und wenn ja dann ein weiteres Macro aufruft. Habe folgenden Skript:
If Columns("I:I") = "Fehler" Then
Call Datenfehler
End If
Bei der Abfrage bricht das Makro in der ersten Zeile ab. Kann mir jemand sagen, was ich falsch mache?
Gruß Jürgen
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 14:02:00
Hajo_Zi
Halölo Jürgen
Application.WorksheetFunction.CountIf

AW: Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 14:11:54
Jürgen
auch Hallo Hajo,
habe zwar angegeben, VBA bescheiden - reicht aber abscheinend nicht aus.
Application.WorksheetFunction.CountIf
Columns("I:I") = "Fehler" Then
Call Datenfehler
End If
Ich glaube das ist quatsch was ich mir zusammengefummelt habe.
Gruß Jürgen
Anzeige
AW: Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 14:13:00
Hajo_Zi
Hallo Jürgen,
es hgibt auch eine hilfe,

Application.WorksheetFunction.CountIf (Columns("I:I"), "Fehler")>0 Then


Gruß Hajo

AW: Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 14:13:00
Chris
Servus,
Columns("I:I") = "Fehler" geht nicht, entweder in einer Schleife :

Sub x ()
For i = 1 to 65536
If Cells(i, 9) = "Fehler"  then
Call DatenFehler
Exit For ' oder ohne Exit For, dann wird das jedesmal ausgeführt.
End if
Next i
End Sub


oder


Sub xx ()
If WorksheetFunction.CountIf(Range("I:I"), "Fehler") > 0 Then
Call DatenFehler
End if
End Sub


oder mit der Find-methode:


Sub xxx ()
Dim rSuche as Range, rFinde As Range
Set rFinde = Range("I:I")
Set rSuche = rFinde.Find(What:="Fehler", lookAt:=xlWhole, lookIn:=xlValues)
If not rSuche is Nothing then
Call DatenFehler
End if
End Sub


Gruß
Chris

Anzeige
AW: Abfrage wenn bestimmter wert in Spalte dann...
08.09.2008 14:18:00
Jürgen
Hat funktioniert,
vielen Dank für Eure Hilfe.
Grüße
Jürgen
;

Forumthreads zu verwandten Themen

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

Abfrage eines bestimmten Wertes in einer Excel-Spalte


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein bestimmter Wert in einer Spalte vorhanden ist, kannst du die CountIf-Funktion oder eine Schleife in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere und füge den folgenden Code ein:
Sub PrüfenWertInSpalte()
    If Application.WorksheetFunction.CountIf(Range("I:I"), "Fehler") > 0 Then
        Call Datenfehler
    End If
End Sub
  1. Ändere den Wert "Fehler" in den Wert, den du suchen möchtest.
  2. Führe das Makro aus, um zu prüfen, ob der Wert in der Spalte vorhanden ist.

Häufige Fehler und Lösungen

  • Fehler 1: "Typen nicht übereinstimmend"

    • Lösung: Stelle sicher, dass der Wert, den du suchst, ein Textwert ist und dass du die Anführungszeichen korrekt verwendest.
  • Fehler 2: "Makro bricht ab"

    • Ursache: Überprüfe, ob die richtige Spalte angegeben ist. Zum Beispiel, wenn du Spalte I prüfen möchtest, verwende Range("I:I").

Alternative Methoden

Es gibt verschiedene Methoden, um zu prüfen, ob ein Wert in einer Spalte vorhanden ist:

  1. Mit einer Schleife:
Sub MitSchleife()
    Dim i As Long
    For i = 1 To 65536
        If Cells(i, 9).Value = "Fehler" Then
            Call Datenfehler
            Exit For
        End If
    Next i
End Sub
  1. Mit der Find-Methode:
Sub MitFind()
    Dim rSuche As Range
    Set rSuche = Range("I:I").Find(What:="Fehler", LookAt:=xlWhole)
    If Not rSuche Is Nothing Then
        Call Datenfehler
    End If
End Sub

Diese Methoden sind nützlich, wenn du eine spezifische Logik implementieren möchtest.


Praktische Beispiele

Angenommen, du möchtest prüfen, ob der Wert "Test" in einer bestimmten Spalte vorhanden ist und, falls ja, einen Wert aus einer anderen Spalte zurückgeben:

Sub RückgabeWert()
    If Application.WorksheetFunction.CountIf(Range("A:A"), "Test") > 0 Then
        MsgBox Cells(Application.WorksheetFunction.Match("Test", Range("A:A"), 0), 2).Value
    End If
End Sub

Dieses Beispiel zeigt, wie du den Wert aus der zweiten Spalte zurückgeben kannst, wenn der gesuchte Wert in der ersten Spalte gefunden wird.


Tipps für Profis

  • Verwende Fehlerbehandlung in deinen VBA-Skripten, um unerwartete Fehler abzufangen:
On Error Resume Next
' Dein Code hier
On Error GoTo 0
  • Dokumentiere deinen Code mit Kommentaren, damit andere verstehen, was du gemacht hast.

  • Nutze benannte Bereiche, um die Lesbarkeit deines Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Wert in einer Liste vorhanden ist?
Verwende die CountIf-Funktion, um zu prüfen, ob ein Wert in einem bestimmten Bereich vorhanden ist.

2. Kann ich mehrere Werte gleichzeitig prüfen?
Ja, du kannst mehrere CountIf-Abfragen in einer If-Bedingung kombinieren oder Schleifen verwenden, um durch die Werte zu iterieren.

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