Supportnet / Forum / Tabellenkalkulation
benutzerdefinierte Funktion läuft immer mit
Frage
salvete
ich habe eine funktionierende benutzerdefinierte Funktion gebastelt
(letztlich nur ein unterstützter SVERWEIS), so weit, so gut
siehe: [url]https://supportnet.de/threads/2134720[/url]
Dazu habe ich einen keinen Dialog erstellt, der diese Funktion verwendet.
Problem:
steht diese Funktion bereits einmal in einem Blatt und ich füge sie mittels Dialogmakro erneut ein, springt der Code in die Funktion. Und zwar genau an der Stelle, an der das Makro zum erstenmal einen Wert in die Tabelle schreibt.
Ist nicht soo tragisch, bei z.B. der 100sten Verwendung dieser Funktion
in einer Mappe fällt es aber langsam auf.
Bringt die Funktion an irgendeiner Stelle aber #WERT!, weil ein Wert nicht beigestellt werden kann, springen alle in der Mappe gesetzten eigenen Funktionen auch auf #WERT!
Mit F2-ENTER kann man es wieder geradeziehen, aber es soll natürlich funtkionieren, ohne immer nachzuarbeiten.
Gebe ich die Funktion manuell ein oder durch autoausfüllen, ist alles in Ordnung.
Ich verwende Excel97.
Oder muss man wieder mit Select oder Activate nachhelfen?
Hat jemand eine Idee?
mfg
schnallgonz
Antwort 1 von schnallgonz
Zitat:
Dazu habe ich einen keinen Dialog erstellt
Dazu habe ich einen keinen Dialog erstellt
ähh es muss natürlich "einen Dialog erstellt" heißen,
das Problem macht mich fertig....
und der Code stammt von rainberg, wie man obigem Link entnehmen kann
gruß
schnallgonz
Antwort 2 von schnallgonz
genau genommen
"einen kleinen Dialog"
"einen kleinen Dialog"
Antwort 3 von schnallgonz
Salvete,
ich führ erstmal weiter Selbstgespräche.
Ein kleines "on error resume next" in der Funktion wirkt manchmal Wunder.
Es wird anstatt #WERT! eine "0" ausgegeben und die Funktion wird nicht ausgebremst.
Trotzdem verstehe ich nicht, warum die manuelle Eingabe der Funktion immer funzt und die makrogesteuerte nicht bei #WERT!.
Mit
sobald das Makro den ersten Zelleneintrag vornimmt, rauscht die Funktion entsprechend der Anzahl der Zellen mit dieser Funktion durch.
Ich hoffe, ich habe das Problem nachvollziehbar geschildert, mir raucht der Schädel.
gruß
schnallgonz
ich führ erstmal weiter Selbstgespräche.
Ein kleines "on error resume next" in der Funktion wirkt manchmal Wunder.
Es wird anstatt #WERT! eine "0" ausgegeben und die Funktion wird nicht ausgebremst.
Trotzdem verstehe ich nicht, warum die manuelle Eingabe der Funktion immer funzt und die makrogesteuerte nicht bei #WERT!.
Mit
Application.Volatile(False)
habe ich es auch schon probiert, egal,sobald das Makro den ersten Zelleneintrag vornimmt, rauscht die Funktion entsprechend der Anzahl der Zellen mit dieser Funktion durch.
Ich hoffe, ich habe das Problem nachvollziehbar geschildert, mir raucht der Schädel.
gruß
schnallgonz
Antwort 4 von meinTipp
Hallo Unbekannte(r),
ohne vollständigen Code ist hier wohl nichts los!
Gruss Rolf
ohne vollständigen Code ist hier wohl nichts los!
Gruss Rolf
Antwort 5 von schnallgonz
Salve,
die Funktion steht im obigen Link
und nach dem Dialog geht es in etwa so weiter:
Sobald der Code einen Wert schreibt (wie oben also den Wert aus vari3)
springt er in die Funktion und führt so oft aus, wie Funktionen in der Tabelle stehen.
Wie gesagt, mit "on error..." läuft es durch, Frage ob man die
unnötige Funktionsschleife nicht abklemmen kann.
Hier
http://www.herber.de/forum/archiv/200to204/t201142.htm
ich ein paar Infos gefunden, könnte doch an Excel97 liegen,
obwohl meine Funktion nicht parameterlos ist.
gruß
schnallgonz
die Funktion steht im obigen Link
und nach dem Dialog geht es in etwa so weiter:
ActiveCell.Offset(0, -1).Value = Vari3
ActiveCell.FormulaLocal = "=FixUndFoxi (" & _
Vari1.Address(RowAbsolute:=False, ColumnAbsolute:=False) & "; " _
& Vari2.Address(RowAbsolute:=False, ColumnAbsolute:=False) & ")"
Sobald der Code einen Wert schreibt (wie oben also den Wert aus vari3)
springt er in die Funktion und führt so oft aus, wie Funktionen in der Tabelle stehen.
Wie gesagt, mit "on error..." läuft es durch, Frage ob man die
unnötige Funktionsschleife nicht abklemmen kann.
Hier
http://www.herber.de/forum/archiv/200to204/t201142.htm
ich ein paar Infos gefunden, könnte doch an Excel97 liegen,
obwohl meine Funktion nicht parameterlos ist.
gruß
schnallgonz