Ich habe mir eine eigene Funktion erstellt die leider noch nicht ganz funktioniert.
Das will ich machen:
Ich habe eine Datei mit Kundendaten. Es gibt zu jedem Kunden mehrere Spalten mit Telefonnummern. Ich will nun herausfinden, ob bei einem Kunden eine Telefonnummer hinterlegt ist oder nicht. Gibt es eine Telefonnummer soll eine 1 zurückgeliefert werden, gibt es keine eine 0.
Die Spalten können 3 verschieden Zustände haben: Entweder sie sind leer, sie enthalten eine Mailadresse oder sie enthalten eine Telefonnummer.
Mein Ansatz:
Die Funktion prüft, ob die Zelle einen Wert enthält, ist dies der Fall, soll geprüft werden, ob ein "@"-Zeichen in der Zelle vorhanden ist. Ist dies nicht der Fall, soll die Funktion eine 1 zurückliefern. D.h. es reicht wenn eine der Telefonspalten diese Bedingungen erfüllt, wenn alle Spalten leer sind oder nur Mailadressen enthalten soll eine 0 zurückgegeben werden.
Mein Code:
Function Telefon1(Bereich As Range) As Integer Dim Zelle As Range Dim Found As Range For Each Zelle In Bereich If Zelle.Value <> "" Then Set Found = Zelle.Find(What:="@", LookIn:=xlValues) If Found Is Nothing Then Telefon1 = 1 Exit Function End If End If Next Zelle Telefon1 = 0 End Function
Da ich das öfter brauche, binde ich das ganze über ein Add-In ein, damit ich es immer zur Verfügung habe.
Es funktioniert auch soweit, dass eine 0 ausgegeben wird, wenn alle Zellen leer sind und eine 1 sobald in einer der Zellen was drin steht. Nur die Prüfung ob ein "@" vorhanden ist funktioniert noch nicht. Wenn also nur z.B. nur eine Zelle gefüllt ist, hier aber ein "@" enthalten ist, wird trotzdem eine 1 zurückgeliefert statt einer 0.
Die Find Methode hatte ich vorher einzeln getestet, müsste also eigentlich funktionieren.
Weiß jemand, wo mein Fehler liegt? Danke für eure Hilfe!
Gruß
Rudi