Anzeige
Archiv - Navigation
320to324
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
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Function läuft als Makro, aber nicht als Formel

Function läuft als Makro, aber nicht als Formel
12.10.2003 16:46:28
Björn
Huhu zusammen,

hat jemand für mich zu folgendem Problem eine Antwort? Eine Funktion soll prüfen, ob sich in einer Range (A1:A13) zwei Werte (die Zahl 12 und der Text test) zugleich in einer Zelle aus der Range befinden und die Adressen der Zellen, in denen beide Bedingungen erfüllt sind.

Der nachstehende Code funktioniert auch insoweit, als er direkt im Code-Debugger augerufen wird. Seltsamerweise gibt derselbe Code aber, wenn er in eine Zelle mit der Formel =findewert() eingebunden wird, den Wert 0 zurück! Hat jemand dafür eine Erklärung?

Danke für Euere Antworten.

Viele Grüße

Björn

---------------------------------

Option Explicit


Function Suchwert() As Variant
'Deklarationen
Dim Such, zeilenzähler, Ergebnis1, Ergebnis2 As String
Dim zelle As Range
Application.Volatile
For zeilenzähler = 2 To 13
With ActiveWorkbook.Worksheets(1).Cells(zeilenzähler, 1)
Set zelle = .Find("test")
If Not zelle Is Nothing Then
Ergebnis1 = zelle.Address
End If
End With
With ActiveWorkbook.Worksheets(1).Cells(zeilenzähler, 1)
Set zelle = .Find(12)
If Not zelle Is Nothing Then
Ergebnis2 = zelle.Address
End If
End With
If Not zelle Is Nothing And Ergebnis1 = Ergebnis2 Then
Such = Such & Ergebnis1 & ","
End If
Next
Suchwert = Such
MsgBox Suchwert
Exit Function
eh:
MsgBox "Fehler " & Err.Description
MsgBox "Fehler " & Err.Source
End Function

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function läuft als Makro, aber nicht als Formel
12.10.2003 18:20:14
jinx
Moin, Björn,

versuch mal den folgenden Ansatz:


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************
Option Explicit
Function Suchwert() As Variant
'Deklarationen
Dim zeilenzähler As Integer
Dim Ergebnis1 As String
Dim Ergebnis2 As String
Dim zelle As Range
Dim Bereich As Range
On Error GoTo eh
Application.Volatile
Set Bereich = Range("A2:A13")
For Each zelle In Bereich
If InStr(1, zelle.Value, "test") Then
Ergebnis1 = zelle.Address(0, 0)
End If
If InStr(1, zelle.Value, 12) Then
Ergebnis2 = zelle.Address(0, 0)
End If
If Ergebnis1 = Ergebnis2 Then
Suchwert = Ergebnis1 & ","
Exit For
End If
Next
Set Bereich = Nothing
Exit Function
eh:
MsgBox "Fehler " & Err.Description
MsgBox "Fehler " & Err.Source
End Function



Code eingefügt mit: Excel Code Jeanie

cu
jinx
Anzeige
AW: Function läuft als Makro, aber nicht als Formel
12.10.2003 18:45:35
Björn
Huhu jinx,

Klasse. Danke für Deine AW!

Ich hab in der Zwischenzeit so was Ähnliches zusammengestrickt, das auch funktioniert (siehe unten - falls es jemand mal später interessiert). Auf den instr-Ansatz wäre ich nicht gekommen. So oder so: Der von mir ursprünglich genannte Code scheint sich tatsächlich wegen des .find - Befehls nicht als Formel in eine Mappe einbinden zu lassen. Weshalb ist mir nach wie vor völlig unklar.... :-(.

Lieben Gruß

Björn

'--------------------------------------


Function Suchergebnis() As Variant
Application.Volatile
'deklarationen
Dim W1, W2 as String
W1 = 12
W2 = "test"
For Each zelle In [A1:A13]
If zelle.Value Like "*" & W1 & "*" And zelle.Value Like "*" & W2 & "*" Then
Suchergebnis = Suchergebnis & zelle.Address & ", "
End If
Next
End Function


'--------------------------------------------
Anzeige
AW: Function läuft als Makro, aber nicht als Formel
12.10.2003 19:49:02
Björn
Huhu jinx,

noch eine Frage:
Wie kann ich eigentlich die Kriterien über die Formel an die Function übergeben? Normalerweise müßte das doch so einfach gehen:

=Suchwert(C16,D16) mit C16 = 12 und D16 = test - oder nicht? Jedenfalls klappt es nicht.

Hast Du noch mal einen Tipp?

Danke!

Viele Grüße

Björn
AW: Function läuft als Makro, aber nicht als Formel
12.10.2003 20:02:09
Björn
Huhu jinx,

schon gefunden. Während die Funktion wie in anderen Programmierspachen üblich tatsächlich function meineFormel(k1,k2) lautet, muß die Excel-Formel lauten =meineFormel(k1;k2).

Danke noch mal für Deine Hilfe!

Viele Grüße

Björn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige