Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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
Inhaltsverzeichnis

Eigene Function funktioniert liefert #Wert! bei Blattwechsel

Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 14:50:31
G.L.
Hi an die Erfahrenen,

ich habe folgendes Problem mit meiner ersten eigenen Function und finde keine Lösung.

Die Function rechnet richtig auf der Seite auf der sie sich befindet. Bei Wechsel auf ein Tabellenblatt welches keinen Bezug zur Fuction hat, passiert nichts.
Bei Wechsel auf ein Blatt in der eine Summe, basierent auf den Werten dieser Function, und auf ein Blatt welches zur Berechung in der Functionsauswertung dient
liefert die Function den Fehlerwert #Wert!.
Nach drücken der Tasten Strg+Alt+F9 wird das Ergebnis, und nur bei dieser Tastenfolge, neu berechnet.

Danke im vorraus.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 14:55:52
Yal
Hi G.L.

Das Problem liegt eindeutig in Zelle B3!

Kleiner Scherz. Aber im Ernst: wie sollten wir das Problem, ohne Funktion und ohne Datei, näher kommen können?

VG
Yal
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 15:00:51
G.L.
Sorry,

ich bin neu als Schreiber im Forum.


Public Function monBer(Suchtext As Range, Mon As String) As Single
Dim Spalte As Range, Zeile As Range
Dim aktM As Integer, Spa As Integer, Zei As Integer, tMon As Integer
Dim aktT As String, ZwZ As String
Dim Wert As Single

aktM = Month(Now())
aktT = DateSerial(Year(Now()), aktM, 1)

With Tabelle1
If Len(Mon) > 2 Then
tMon = InStr(1, Mon, aktM) 'auslesen des Monats aus Teilzahlungszeitraum
Else
If Mon = 0 Then
tMon = aktM
Else
tMon = Mon
End If

End If

If Not Suchtext.Font.ColorIndex = 10 Then Exit Function 'aussteigen auf Grund der Textfarbe, damit Berechnung abgebrochen wird
If tMon > aktM Then Exit Function 'aussteigen auf Grund des falschen Monats, damit Berechnung abgebrochen wird
End With

With Tabelle4
Set Spalte = .Rows(3).Find(aktT) 'Spalte des aktuellen Monats in Gesamtübersicht auswählen
Set Zeile = .Columns(2).Find(Suchtext.Value) 'Zeile des aktuellen Empfängers in Gesamtübersicht auswählen

Spa = Spalte.Column
Zei = Zeile.Row

ZwZ = LTrim(Str(.Cells(Zei, Spa).Value))

Select Case ZwZ
Case Is = 0
Wert = .Cells(Zei, Spa - tMon).Value
Case Else
Wert = 0
End Select
End With

monBer = Wert

End Function

Dies ist habe ich bis jetzt zusammen gestellt

VG
Anzeige
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 15:46:16
Yal
Hallo G.L.

deine Formel scheint "relativ" einfach zu sein. Das einzige, was einen Umweg über VBA notwendig macht, ist das Prüfen der Schriftfarbe. Wenn Du nur diese eine Tätigkeit in einer UDF (user defined function) ablagerst, kannst Du mit Exceln formeln arbeiten.

Public Function TextFarbe(ByVal Zelle As Range) As Long

'nur eine Zelle prüfen (die erste)
TextFarbe = Zelle.Cells(1).Font.ColorIndex
End Function


Wenn Du dann die Lösung mit excel Formeln hast, kannst Du aufbauen.

Ein doppelter Verweis (also Kombination von SVerweis und WVerweis) kann man auch wie folgt implementieren:
Public Function QuerVerweis(ByVal SuchInZeilüberschrift, ByVal Zeilüberschrift As Range, ByVal SuchInSpaltüberschrift, ByVal Spaltüberschrift As Range)

If TypeOf SuchInZeilüberschrift Is Range Then SuchInZeilüberschrift = SuchInZeilüberschrift.Value
If TypeOf SuchInSpaltüberschrift Is Range Then SuchInSpaltüberschrift = SuchInSpaltüberschrift.Value
QuerVerweis = Intersect(Zeilüberschrift.EntireRow, Spaltüberschrift.EntireColumn).Cells( _
WorksheetFunction.Match(SuchInZeilüberschrift, Zeilüberschrift, 0), _
WorksheetFunction.Match(SuchInSpaltüberschrift, Spaltüberschrift, 0))
End Function

am Beispiel: =QuerVerweis(A7;$A$2:$A$4;B6;$B$1:$D$1)

VG
Yal
Anzeige
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 18:49:08
G.L.
Hallo Yal,

Ich habe eben eine Beispieldatei hochgeladen. In der Beispieldatei ist in Wert eingegeben und erzeugt keine Fehlermeldung. In der Originaldatei habe ich daraufhin die
vorhandenen Formeln durch Werte ersetzt, woraufhin kein Fehler mehr aufgetreten ist.
Ich folgere daraus daß der Fehler durch die Formel erzeugt wird.
Vieleicht hast du eine Idee wie ich dies umgehen kann. Es handelt sich um den Bereich With Tabelle4, in der Programmierung.

VG
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
15.01.2024 10:40:33
Yal
Hallo G.L.,

Du hast vielleicht eine Datei hochgeladen, aber vergessen, den Link zu kopieren und im Posting einzufügen.

Wenn die zweite Teil deiner Funtkion klemmt, kannst Du versuchen, die "QuerVerweis"-Funktion einzubauen.

VG
Yal
Anzeige
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
15.01.2024 18:09:34
G.L.
Hallo Yal,

vielen Dank für deine Hilfe.

Ich habe den Fehler gefunden. Es handelt sich um einen Autofilter die ich in zwei Tabellen eingebaut habe und die sich aus der Tabelle mit der Function die Daten ziehen.

Sorry, da hätte ich früher draufkommen können.

vielen Dank
G.L.
AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
16.01.2024 08:52:01
Yal
Egal, hauptsache gefunden.

Vielen Dank für die Rückmeldung.

VG
Yal

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige