Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1648to1652
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

VBA-Funktion: Fehler nach diversen Ereignissen

VBA-Funktion: Fehler nach diversen Ereignissen
16.10.2018 21:16:41
die_chillkroete
Liebe Damen und Herren,
in der angehängten Datei ist ein kleiner Ausschnitt meiner Arbeitsdatei zu sehen. Diese Datei arbeitet mit einer eigenen VBA-Funktion, die prinzipiell auch sehr gut funktioniert. Das Problem ist nur, dass bei diversen Ereignissen in Excel die Function einen Fehlerwert #Wert! bzw. #NV zurückgibt. Eines dieser Ereignisse, die ich auch häufig nutzen muss, ist, wenn Zellen aus der Arbeitsmappe in eine neue kopiert werden müssen.
Probiert es selbst aus.
Hat jemand eine Idee, wie der Fehler beseitigt werden kann?
Danke im Voraus und Beste Grüße!
https://www.herber.de/bbs/user/124671.zip

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 00:02:36
onur
Nix für Ungut, aber: Wo hast du das denn her?
Die funktion ist vieeel zu kompliziert aufgebaut, macht auf den ersten Blick einen sehr professionellen Eindruck, aber leider mehr Schein als Sein, als ob Jemand eine Kurzgeschichte mit Fremdworten und Fachausdrücken gespickt und zu einem Roman gestreckt hätte.
Man sollte ausserdem auch keine Subs aus einer UDF aufrufen.
Das hier tut das selbe, braucht aber keinen anderen Code, auf den er aufbaut und man blickt durch:
Public Function Berechne(ByVal str As String) As Double
Dim Tra, Art(), Anz(), l, i, pos, rng, ze
Dim preis, such
Application.Volatile
Set rng = Worksheets("EBM").Range("tblEBM")
On Error GoTo fehler:
Tra = Split(str, ",")
For i = 0 To UBound(Tra)
l = Len(Tra(i))
pos = InStr(Tra(i), "x")
ReDim Preserve Art(i)
ReDim Preserve Anz(i)
If pos 

Anzeige
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 16:43:38
die_chillkroete
ja vielen Dank fürs Umschreiben der Funktion! Das hat mir im Nachhinein noch ein bisschen Arbeit erspart :) Hab dank dafür!
Aber das Problem ist dadurch ja nach wie vor nicht gelöst worden. Wenn ich die Zelle, in der die Berechnung erfolgt, in eine andere Arbeitsmappe(!) kopiere, dann ist auch hier ein Fehler die Folge...
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 16:55:11
Daniel
Hi
1. wenn du eine Zelle, die eine selbstgeschriebene Funktion (UDF) verwendet, in eine andere Mappe kopierst, dann musstest du entweder den Code der Formel in die andere Mappe mit übernehmen oder du musst bei der Funktion angeben, dass die Funktion aus einer anderen Mappe stammt:
Mappe1.xlsb!Berechne("xyz")
funktioniert aber auch nur, solange die Mappe mit dem Makrocode geöffnet ist.
2. enthält diese Funktion einen Verweis auf einen Excelnamen in einem Tabellenblatt: Set rng = Worksheets("EBM").Range("tblEBM")
damit das funktioniert, müsste dieser Name und dieses Tabellenblatt auch in der neuen Mappe vorhanden sein.
besser wäre es hier, diesen Zellbereich nicht fest im Formelcode zu verankern, sondern als zweiten Übergabeparameter anzugeben, dann kannst du den Bezug anpassen, ohne in den Formelcode eingreifen zu müssen:
Public Function Berechne(ByVal str As String, byVal rng as Range) As Double

und dann natürlich rng nicht weiter deklarieren und auch keinen weitern Wert zuweisen.
Gruß Daniel
Anzeige
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 17:17:51
die_chillkroete
vielen lieben Dank!
Die Argumentation kann ich soweit nachvollziehen.
Allerdings tritt der Fehler auch auf, wenn ich die UDF berechnende Zelle kopiere und im anderen Arbeitsmappe die Werte hart einfüge ("Werte einfügen"). In diesem Moment benötigt ja die andere Arbeitsmappe keinen Code... und dann müsste noch lange nicht ein Fehlerwert in der Ursprungsdatei berechnet werden bei diesem Ereignis :)
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 17:26:27
onur
Ich vermute mal, es liegt an den Formeln in B - wozu sind die gut? Da steht doch das gleiche drin wie in H und sie müssen jedes mal über umweg (anderes Blatt) neu berechnet werden.
Das haut den Range jedes mal durcheinander.
Anzeige
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 17:34:16
die_chillkroete
@onur: Wenn man in A1 das Datum ändert (z.B. 06/2018) dann wird auf die Spalte I zugegriffen. Dort würden dann andere Werte für die einzelnen Abrechnungspositionen stehen. Dies dient der Rekonstruierbarkeit und ggf. späteren Korrekturen und ist für die komplette Arbeitsmappe unverzichtbar.
Ich hatte die Datei, die ich hier hochgeladen habe, auf das nötigste abgespeckt.
AW: VBA-Funktion: Fehler nach diversen Ereignissen
17.10.2018 17:38:17
onur
Vieleicht solltest du evtl. B und H vertauschen und den Bereich, den auch die Funktion braucht, auf A und B begrenzen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige