Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Delila_1

    veterán

    válasz Árnymester #26961 üzenetére

    Jó lenne, amit írtam, ha nem hagyom ki belőle a szombat és vasárnap kivonását. Így jár, aki kapkod.

    Hétvégékkel a makró

    Function Munkanap(kezd As Date, vegez As Date)
    Dim MN As Integer, ido As Integer, valami
    MN = vegez - kezd

    For ido = 0 To MN
    valami = kezd + ido
    If Weekday(valami, 2) > 5 Then MN = MN - 1
    If Application.WorksheetFunction.CountIf(Range("E1:E20"), valami) > 0 Then MN = MN - 1
    If Application.WorksheetFunction.CountIf(Range("G1:G10"), valami) > 0 Then MN = MN + 1
    Next

    Munkanap = MN
    End Function

    Szerk: magyarázat
    A kezd dátumhoz a For-Next ciklusban egyenként hozzáadom a két dátum közötti különbséget. Ha a kezd=2015.04.03, akkor a ciklusban az első érték ugyanez lesz (mert közben rájöttem, hogy ha 1-gyel kezdem a ciklust, az első napot nem veszi figyelembe). Ha ez a nap ünnep (szerepel az E oszlopban), vagy hétvége, akkor az össznapból (MN) levon 1-et. Ha viszont szombat, és munkanap, akkor hozzáad az MN-hez 1-et.
    A ciklusban a következő esetben a 2015.04.04-et vizsgálja hasonló módon.

Új hozzászólás Aktív témák