Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/Функции (UDF) "ПАСХА" и "ТРОИЦА" - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин, DrMini  
Функции (UDF) "ПАСХА" и "ТРОИЦА"
Alex_ST Дата: Четверг, 26.08.2010, 11:47 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
=======================================================
Функции (UDF) "ПАСХА" и "ТРОИЦА"
=======================================================
Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент.
По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год.

Function ПАСХА(Optional ГОД As Integer) As Date
    '---------------------------------------------------------------------------------------
    ' Procedure    : ПАСХА
    ' Author       : KuklP
    ' Topic_HEADER : Определение даты Пасхи
    ' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=14758
    ' Post_Author  : KuklP
    ' Post_URL     : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls
    ' DateTime     : 29.03.2010, 17:37
    ' Notes 1      : По умолчанию - текущий год
    ' Notes 2      : Формат ячейки-результата должен быть ДАТА
    '---------------------------------------------------------------------------------------
    Dim A As Long, b As Long, c As Long, d As Long, e As Long, z As Long
    Dim МЕСЯЦ As Integer, ДЕНЬ As Integer
    If ГОД = 0 Then ГОД = Year(Date)
    A = ГОД Mod 19: b = ГОД Mod 4: c = ГОД Mod 7
    d = (19 * A + 15) Mod 30
    e = (2 * b + 4 * c + 6 * d + 6) Mod 7
    z = d + e
    МЕСЯЦ = (z + 25) / 35 + 3
    ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4)
    ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13
End Function

Function ТРОИЦА(Optional ГОД As Integer) As Date
    '---------------------------------------------------------------------------------------
    ' Procedure    : ТРОИЦА
    ' Author       : KuklP
    ' Topic_HEADER : Определение даты Троицы
    ' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=14758
    ' Post_Author  : KuklP
    ' Post_URL     : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls
    ' DateTime     : 29.03.2010, 17:37
    ' Notes 1      : По умолчанию - текущий год
    ' Notes 2      : Формат ячейки-результата должен быть ДАТА
    '---------------------------------------------------------------------------------------
    ТРОИЦА = ПАСХА(ГОД) + 49
End Function




С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение=======================================================
Функции (UDF) "ПАСХА" и "ТРОИЦА"
=======================================================
Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент.
По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год.
[vba]
Function ПАСХА(Optional ГОД As Integer) As Date      '---------------------------------------------------------------------------------------      ' Procedure    : ПАСХА      ' Author       : KuklP      ' Topic_HEADER : Определение даты Пасхи      ' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=14758      ' Post_Author  : KuklP      ' Post_URL     : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls      ' DateTime     : 29.03.2010, 17:37      ' Notes 1      : По умолчанию - текущий год      ' Notes 2      : Формат ячейки-результата должен быть ДАТА      '---------------------------------------------------------------------------------------      Dim A As Long, b As Long, c As Long, d As Long, e As Long, z As Long      Dim МЕСЯЦ As Integer, ДЕНЬ As Integer      If ГОД = 0 Then ГОД = Year(Date)      A = ГОД Mod 19: b = ГОД Mod 4: c = ГОД Mod 7      d = (19 * A + 15) Mod 30      e = (2 * b + 4 * c + 6 * d + 6) Mod 7      z = d + e      МЕСЯЦ = (z + 25) / 35 + 3      ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4)      ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13 End Function Function ТРОИЦА(Optional ГОД As Integer) As Date      '---------------------------------------------------------------------------------------      ' Procedure    : ТРОИЦА      ' Author       : KuklP      ' Topic_HEADER : Определение даты Троицы      ' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=14758      ' Post_Author  : KuklP      ' Post_URL     : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls      ' DateTime     : 29.03.2010, 17:37      ' Notes 1      : По умолчанию - текущий год      ' Notes 2      : Формат ячейки-результата должен быть ДАТА      '---------------------------------------------------------------------------------------      ТРОИЦА = ПАСХА(ГОД) + 49 End Function
[/vba]

Автор - Alex_ST
Дата добавления - 26.08.2010 в 11:47
Pall Дата: Пятница, 16.11.2012, 14:01 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Цитата
' Notes 2 : Формат ячейки-результата должен быть ДАТА

А как заставить, чтобы формат изменился?
Я пробовал
ActiveCell.NumberFormat = "dd/mm/yyyy"

но не работает.
 
Ответить
Сообщение
Цитата
' Notes 2 : Формат ячейки-результата должен быть ДАТА

А как заставить, чтобы формат изменился?
Я пробовал
ActiveCell.NumberFormat = "dd/mm/yyyy"

но не работает.

Автор - Pall
Дата добавления - 16.11.2012 в 14:01
Serge_007 Дата: Пятница, 16.11.2012, 22:51 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Pall писал(а)):
А как заставить, чтобы формат изменился?
Я пробовал
ActiveCell.NumberFormat = "dd/mm/yyyy"

Если у Вас уже стоит формат даты, то зачем Вы его ещё раз в дату пытаетесь преобразовать?!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Pall писал(а)):
А как заставить, чтобы формат изменился?
Я пробовал
ActiveCell.NumberFormat = "dd/mm/yyyy"

Если у Вас уже стоит формат даты, то зачем Вы его ещё раз в дату пытаетесь преобразовать?!

Автор - Serge_007
Дата добавления - 16.11.2012 в 22:51
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!