Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
384to388
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
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu VBA

Frage zu VBA
18.02.2004 15:15:19
Timo
Und nochmal hallo Forum,
Gibt es eine Möglichkeit, Add-in Funktionen wie z.B. "Nettoarbeitstage" im VBA Editor als Funktion zu nutzen?
Das würde mir wirklich weiterhelfen!!!
Gruß Timo

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zu VBA
18.02.2004 15:38:10
Alex K.
Hallo Timo,
hierzu musst du im Add-In Manager das Add-In "Analyse-Funktion - VBA" einbinden. Unter Excel 2000 gibt es eine deutsche (Datei ATPVBADE.XLA) und eine englische Version (ATPVBAEN.XLA) der Datei. Bei der deutschen habe ich allerdings Probleme beim Einbindung. Vielleicht hast du ja mehr Glück.
Ansonsten musst du halt mit den englischen Funktionsaufrufen arbeiten.
Nettoarbeitstage = Networkdays

AW: Frage zu VBA
18.02.2004 15:39:17
Ramses
Hallo
leider Nein, da dies keine direkten EXCEL-Funktionen sind, sondern über ein AddIn eingebunden sind.
Alternativ dieses hier vielleicht


Function myPrivateNetworkDays(myStart As Range, myEnd As Range, Optional freedays As Range) As Long
'by Ramses
'Aufruf erfolgt in Tabelle
'=myPrivateNetworkDays(A1;A2;B1:B10)
'A1 = StartDatum
'A2 = EndDatum
'B1:B10 = Bereich in dem die freien Tage als Datum definiert sind
On Error GoTo myErrorHandler
Dim As Long, n As Long, DayChk As Boolean
Dim myNetDays As Long, myF As Variant
Dim myC As Range
myNetDays = 0
n = 0
DayChk = False
For i = myStart To myEnd
    If Weekday(Format(myStart + n, "dd.mm.yyyy"), vbMonday) < 6 Then
        'On Error Resume Next
        For Each myC In freedays
            If myC.Value = myStart + n Then
                DayChk = True
                Exit For
            End If
        Next
Weiter:
        Err.Clear
        If DayChk = False Then
            myNetDays = myNetDays + 1
        End If
        DayChk = False
    End If
    n = n + 1
Next i
ErrExit:
myPrivateNetworkDays = myNetDays
Exit Function
myErrorHandler:
Select Case Err.Number
    Case 424 'Kein Feiertagsbereich
        Resume Weiter
    Case Else
        MsgBox Err.Number & ": " & Err.Description
        Resume ErrExit
End Select
End Function

     Code eingefügt mit Syntaxhighlighter 2.5

Gruss Rainer
Anzeige
AW: Frage zu VBA
18.02.2004 15:55:56
Timo
Die Funktion ist klasse, nur mein Problem ist, dass die freien Tage automatischermittelt werden sollen. :-/
es soll nur ein Anfangs und ein Enddatum eingegeben werden.
Was verstehst du unter Freie Tage ? o.T.
18.02.2004 16:02:31
Ramses
...
AW: Was verstehst du unter Freie Tage ? o.T.
18.02.2004 16:03:49
Timo
Feiertage, wie Ostermontag, Karfreitag, Himmelfahrt usw.
AW: Was verstehst du unter Freie Tage ? o.T.
18.02.2004 16:08:30
Ramses
Hallo
wo liegt das Problem ?
Die musst du natürlich angeben oder berechnen lassen. Das macht die AddIn Funktion auch nicht selbst :-)

Function EasterDate(Yr As Integer) As Date
Dim d As Integer
d = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
EasterDate = DateSerial(Yr, 3, 1) + d + (d > 48) + 6 - ((Yr + Yr \ 4 + d + (d > 48) + 1) Mod 7)
End Function

Übergib der Funktion das Jahr und du erhältst das Osterdatum zurück.
Davon kannst du die beweglichen Feiertage berechnen und die anderen festen Feiertage musst du irgendwie eintragen oder übergeben.
EXCEL ist kein Hellseher :-))
Gruss Rainer
Anzeige
AW: Was verstehst du unter Freie Tage ? o.T.
18.02.2004 16:13:31
Timo
Und wie muss ich die Formel umstellen damit ich andere Feiertage berechnen kann???
Ich sehe da irgendwie kein Bezug aufs Osterdatum, oder ich bin einfach nur blöde... ;-)
Aber echt super das du mir so hilfst...
Darf ich aushelfen, Rainer,...
18.02.2004 16:21:48
Franz W.
um deine Kompetenz hier nicht allzu sehr zu binden :-)))
Hallo Timo,
schau die mal die Datei an, da findest du ne Menge über Feiertage. Auch die Funktion von Ramses ist da drin, heißt hier "Ostern":
https://www.herber.de/bbs/user/3765.xls
Und dazu dann die Funktion für die Nettoarbeitstage von Ramses.
Grüße
Franz
Anzeige
Aber klar :-)) o.T.
18.02.2004 16:26:22
Ramses
...
AW: Darf ich aushelfen, Rainer,...
18.02.2004 16:27:08
Timo
Danke, mal sehen ob mir das weiter hilft!!!
Gruß Timo
AW: Was verstehst du unter Freie Tage ? o.T.
18.02.2004 16:25:39
Ramses
Hallo
bei VBA-Gut gehe ich davon aus, dass das mal ausprobiert wird ;-)
Die Formel in ein Modul und im Debug-Fenster
Debug.Print EasterDate(2004)
eingeben.
Anzuwenden wie folgt:

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige