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

Forumthread: VBA, Suche nach Komma in Zellwert

VBA, Suche nach Komma in Zellwert
Rudi
Hallo
Ich möchte per VBA-Code untersuchen, ob in einer Zelle mehr als 1 Wert aufgeführt ist.
Voraussetzung: Wenn eine Zelle mehr als einen Eintrag hat, dann sind diese mit einem Komma getrennt.
Nun bringt aber VBA die Fehlermeldung 1004, wenn kein Komma gefunden wurde.
Wie kann ich das verbessern?
Das Makro sieht so aus:
Sub test(inpWB as Workbook)
dim a as variant
a = Application.WorksheetFunction.Find(",", Workbooks(inpWB.Name).Sheets(1).Range("N15"))
If IsNumeric(a) Then  'wenn  vorhanden dann
MsgBox "gefunden an " & a & ". Stelle" 'hier kommt dein Code hin
Else                     'sonst
MsgBox "kein Komma gefunden"
End If
End Sub

Danke für eure Hilfe!
Gruss, Rudi
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Split(Zelle.text,",")
26.06.2012 17:34:45
ransi
HAllo
Da gibt es viel Möglichkeiten das zu prüfen.
Find ist eine der ungünstigsten. ;-)
Hier mal ein anderer Ansatz:
Option Explicit

Sub test()
    Dim a As Variant
    Dim inpWB As Workbook
    Set inpWB = ThisWorkbook
    a = Split(Workbooks(inpWB.Name).Sheets(1).Range("N15").Text, ",")
    If UBound(a) > 0 Then
        MsgBox "Komma"
        Else:
        MsgBox "Kein Komma"
    End If
End Sub



ransi
Anzeige
AW:mit Instr
26.06.2012 17:38:00
hary
Hallo
geht auch so. Statt Cells(1,1) deine Zelle

If InStr(1, Cells(1, 1), ",") Then
MsgBox "Komma vorhanden"
Else
MsgBox "kein Komma vorhanden"
End If
gruss hary
AW: VBA, Suche nach Komma in Zellwert
26.06.2012 17:51:39
Rudi
Hallo ransi und hary
Besten Dank für eure Hilfe! Funktioniert super!
Gruss, Rudi
Anzeige
;

Forumthreads zu verwandten Themen

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

VBA: Suche nach Komma in Zellwert


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob in einer Zelle mehr als ein Wert durch ein Komma getrennt ist, kannst du den folgenden VBA-Code verwenden. Dieser Code geht sicher, dass keine Fehlermeldungen auftreten, wenn kein Komma gefunden wird:

Sub test(inpWB As Workbook)
    Dim a As Variant
    a = Application.WorksheetFunction.Find(",", Workbooks(inpWB.Name).Sheets(1).Range("N15"))
    If IsNumeric(a) Then
        MsgBox "gefunden an " & a & ". Stelle"
    Else
        MsgBox "kein Komma gefunden"
    End If
End Sub

Alternativ kannst du die Split-Funktion verwenden, um den Zellinhalt zu analysieren:

Sub test()
    Dim a As Variant
    Dim inpWB As Workbook
    Set inpWB = ThisWorkbook
    a = Split(Workbooks(inpWB.Name).Sheets(1).Range("N15").Text, ",")
    If UBound(a) > 0 Then
        MsgBox "Komma gefunden"
    Else
        MsgBox "Kein Komma"
    End If
End Sub

Häufige Fehler und Lösungen

Ein häufiger Fehler ist die Fehlermeldung 1004, die auftritt, wenn die Find-Methode kein Komma findet. Um dies zu umgehen, solltest du immer überprüfen, ob das Komma vorhanden ist, bevor du darauf zugreifst.

Wenn du den Split-Ansatz verwendest, achte darauf, dass die Zelle tatsächlich Text enthält und nicht leer ist. Andernfalls erhältst du möglicherweise unerwartete Ergebnisse.


Alternative Methoden

Neben den bereits genannten Methoden kannst du auch die InStr-Funktion verwenden, um nach einem Komma zu suchen:

If InStr(1, Cells(1, 1), ",") Then
    MsgBox "Komma vorhanden"
Else
    MsgBox "kein Komma vorhanden"
End If

Diese Methode ist einfach und direkt, wenn du nur wissen möchtest, ob ein Komma in einer bestimmten Zelle vorhanden ist.


Praktische Beispiele

  1. Prüfen von Zellen in einer Liste: Du kannst eine Schleife implementieren, um mehrere Zellen in einer Spalte zu überprüfen und die Ergebnisse in einer anderen Spalte anzuzeigen.

  2. Benutzerdefinierte Meldungen: Du kannst die MsgBox-Anzeigen anpassen, um spezifischere Informationen zu geben, z.B. wie viele Kommas gefunden wurden oder in welchen Zellen sie sich befinden.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit verschiedenen Methoden und wähle diejenige, die am besten zu deinem Projekt passt.
  • Halte deine Makros so modular wie möglich, sodass du einzelne Funktionen leicht anpassen oder wiederverwenden kannst.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Find und InStr?
Find sucht nach einer Zeichenfolge in einer Zelle und gibt die Position zurück, während InStr eine einfache Überprüfung durchführt, ob die Zeichenfolge vorhanden ist oder nicht.

2. Kann ich den Code für mehrere Zellen gleichzeitig verwenden?
Ja, du kannst eine Schleife implementieren, um durch mehrere Zellen zu iterieren und die gleiche Logik anzuwenden.

3. Was passiert, wenn die Zelle leer ist?
Wenn die Zelle leer ist, wird die Find-Methode einen Fehler zurückgeben. Es ist sinnvoll, dies vorher zu überprüfen.

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