Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige