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

VBA "Find" in UDF

Forumthread: VBA "Find" in UDF

VBA "Find" in UDF
27.08.2004 09:06:37
Frank
Ich bitte um Eure Hilfe!
Problem:
Ich habe eine benutzerdefinerte Funktion geschrieben, die den FIND-Befehl benutzt.
Aus Codenummern in mehreren Zellen sollen die Klartexte zu den Codenummern mehrzeilig in einer Zelle ausgegeben werden.
Anfangs funktionierte diese UDF, danach lieferte der FIND-Befehl immer "nothing" als Resultat.
Als "Sub" geschrieben mit Wertevorgaben innerhalb der "Sub" funktionierts.
Mit dem Debugger sehe ich die gleichen Startwerte für den FIND-Befehl, egal ob als "Sub" oder als "Function" getestet.
Andere Anwender benutzen diese Excel-Datei auch. Kein Schreibschutz.
Spielt die Formatierung der Codenummern eine Rolle?
Welche VBA-Verweise sind erforderlich?
- Microsoft Office 8.0 Objekt Library ist aktiviert.
Wo finde ich Hinweise zu notwendigen Verweisen?
Vielen Dank all denen, die sich für mein Problem Zeit nehmen
von Frank
Aufruf im Tabellenblatt:
=FehlerText(ZS21:ZS25;"Fehlercode")
Hier der Code der Funktion:

Function FehlerText(BereichCodeNr As Range, CodeListe As String) As String
'-- liefert mehrzeiligen Klartext zu Codenummern aus einem mehrzelligen Bereich
'   CodeListe ist der Tabellenname mit dem Fehlercode (Spalte 1) und dem Fehlertext (Spalte 2)
'   BereichCodeNr ist der Bereich, der die auszuwertenden Zellen mit Codenummern enthält
Dim varTemp As Variant, strMessage As String
Dim c As Variant, varCell As Variant
Dim blnFirstValue As Boolean
Dim strOut As String
blnFirstValue = True
For Each c In BereichCodeNr
varTemp = Trim(c.Value)
If Len(varTemp) > 0 Then                                	' leere Zellen möglich
If Not blnFirstValue Then strOut = strOut & Chr(10)   	' nicht vor dem erstem Wert
With ThisWorkbook.Worksheets(CodeListe).Cells(1, 1).EntireColumn
Set varCell = .Find(What:=varTemp, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows)
If Not varCell Is Nothing Then
strMessage = .Cells(varCell.Row, 2).Value
blnFirstValue = False
End If
End With
strOut = strOut & strMessage
End If
Next c
FehlerText = strOut
End Function

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA "Find" in UDF
Udo
Find in UDF hat in Excel 97 nie zuverlässig funktioniert, wahrscheinlich ein bug.
Nutze stattdessen eine Sub, auch kein Problem.
Udo
AW: VBA "Find" in UDF
27.08.2004 10:06:34
Frank
Das Makro wurde zuerst in Office 2000 geschrieben und genutzt.
Excel97 könnte also die Ursache sein. Danke
"Sub" nutzen aber wie?
Wie bekomme ich das Ergebnis in die aufrufende Zelle
ohne die Formel zu überschreiben?
Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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