Servus!
Grüezi Falcon
Ich hatte geschrieben:
Nimm doch daher die folgenden Zeilen
und kopiere sie in ein allgemeines Modul deiner Mappe. Dann
kannst Du die Funktion VorNachTab() wie alle anderen auch in
deinem Tabellenblatt verwenden:
Leider funst das bei mir nicht so wirklich. Muß dazu sagen,
dass ich nicht wirklich ein VB Könner bin und es vermutlich
kein großer Akt sein sollte.
Und Du sagst nun:
Hab die Funktion in ein Modul meiner Arbeitsmappe eingefügt
und mit dem Aufruf
VorNachTab (C3)
in meinem Sub eingebaut. Seine Antwort: „Argument ist nicht
optional!“
Wenn ich noch nen zweiten Parameter eingeben will z.b.
VorNachTab (C3;-2)
erhalte ich die Fehlermeldung: „Erwarte Listenzeichen oder )!“
Vermutlich is der Funktionsaufruf falsch… könntest Du mir
nochmal nen Schubs in die richtige Richtung geben?
hmmm… da hat mich wohl Dein Verweis auf „ein allgemeines Modul deiner Mappe“ etwas vom rechten Pfad abgebracht.
Aber das hätten wir ja jetzt geklärt, danke.
Dann schubse ich dich mal aufs Tabellenblatt 
Die Funktion ist dazu ausgelegt in einem
Tabellenblatt verwendet zu werden, nicht aus
VBA heraus - das hatte ich aber sowohl in meiner Antwort, als
auch im Kommentar der Funktion IMO klar geschrieben.
Ja… wie gesagt… mein mangelndes Verständnis für VBA, sorry.
In VBA ist das nämlich so nicht notwendig, da Du jedes
Tabellenblatt über dessen Index direkt ansprechen kannst und
auch den Index des aktiven Blattes ermitteln.
Für den Gebrauch in VBA müsste die Funktion umgeschrieben
werdne, resp. musst Du klar(er) Auskunft darüber geben was
genau du denn tun willst.
Okay, ich werd’s mal versuchen… Ich will eine Buchführung über meine Arbeitsstunden. Die ermittelte Arbeitszeit pro Tag in einer Wochensumme angeben, um die Einhaltung meiner Wochenarbeitszeit auf einen Blick feststellen zu können. Bei einem Monatswechsel (z.b. Januar-Februar) soll mittels Befehlschaltfläche das aktuelle Sheet (Januar) kopiert werden, alle Eingabewerte gelöscht und unter dem Namen des Folgemonats (Februar) gespeichert werden. Da wie in meinem ersten Artikel erwähnt ein Monat auch mal mit z.b. Freitag anfangen kann bräuchte ich die im Vormonat (Januar) von Montag bis Donnerstag abgeleisteten Arbeitsstunden um die Summe der im Februar endende Woche bilden zu können. … klar soweit?
Deine VorNachTab Funktion erfüllt auch genau den von mir gewünschten Zweck und nachdem ich meinen Fehler bezüglich Modul/Tabellenblatt behoben hatte hat’s auch einwandfrei funktioniert. Ich hab sowohl die Anzeigehilfe für geforderte Parameter bekommen als ich bei „=VorNachTab(“ angekommen war und meine Funktion auch als Benutzerdefinierte Funktion beim Funktionsassitenten gefunden. So… und an diesem Punkt hat die Erfolgsgeschichte dann auch ein Ende. Keine Ahnung was passiert is aber seitdem ich versuche die Funktion für meine Zwecke zu verwenden
ActiveCell.FormulaR1C1 = „=SUM(R[-6]C[-1]:RC[-1])+VorNachTab(R[25]C,1))“
funktionier es nicht mehr. Die Eingabe „=VorNachTab(C3)“ liefert nur noch ein „#Name?“ anstatt des Tabellenwertes und im Funktionsassitenten wird sie auch nicht mehr angezeigt.(Im übrigen kann ich keine selbst definierte Funktion mehr verwenden welche über eine Eingabe im Tabellenblatt aufgerufen wird.) Da ich an der Funktion nichts mehr verändert habe, muß ich davon ausgehen, dass die Verbindung zwischen dem Code und der Exceloberfläche in irgendeiner Form beeinträchtig is. Oder ich checks einfach nicht
.
So oder so… es hat funktioniert und ich würd’s gerne Einbaun… hast Du ne Idee wie ich die Funktion so wieder zum laufen bekomme? Bzw. könntest Du mir die VBA Alternative näher erläutern?
Besten Dank
Falcon
–
Mit freundlichen Grüssen
Thomas Ramel