Здравствуйте, такая проблема мне нужно было написать макрос который будет считать сколько осталось времени до конца договора. Вот само задание: Среда разработки: Microsoft Excel Входные данные (отдельные ячейки для ввода ): Дата начала действия договора: формат dd.mm.yyyy Время начала действия договора формат: hh.mm.ss Время (длительность) действия договора (для каждого поля отдельная ячейка для ввода): Года: yyyy Месяца: mm Дни: dd Часы: hh Минуты: mm Секунды: ss Текущее время и дата (ячейки для ввода): Дата : формат dd.mm.yyyy Время : hh.mm.ss
Задача: Создать кнопку. По нажатию кнопки посчитать и вывести количество оставшегося времени действия договора от текущего момента время. (Взять начало договора приплюсовать длительность действия договора и рассчитать сколько осталось в Годах, месяцах, днях, часах, минутах и секундах до конца и вывести в ячейки) Выходные данные ( для каждого поля отдельная ячейки для вывода): Года: yyyy Месяца: mm Дни: dd Часы: hh Минуты: mm Секунды: ss
есть такой макрос: [vba]
Код
Sub Fg() Dim A As Date, B As Date, I As Date, J As Date Dim C As Integer, D As Integer, E As Integer, F As Integer, G As Integer, H As Integer A = Range("C1").Value B = Range("C2").Value C = Range("C11").Value D = Range("C12").Value E = Range("C13").Value F = Range("C14").Value G = Range("C15").Value H = Range("C16").Value I = Range("C7").Value J = Range("C8").Value StartDate = DateValue(A) + TimeValue(B) TheEndOfContract = DateAdd("yyyy", C, StartDate) TheEndOfContract1 = DateAdd("m", D, TheEndOfContract) TheEndOfContract2 = DateAdd("y", E, TheEndOfContract1) TheEndOfContract3 = DateAdd("h", F, TheEndOfContract2) TheEndOfContract4 = DateAdd("n", G, TheEndOfContract3) TheEndOfContract5 = DateAdd("s", H, TheEndOfContract4) [C6] = TheEndOfContract5 CurrentDate = DateValue(I) + TimeValue(J) [C9] = CurrentDate T = Range("C6").Value - Range("C9").Value [C4] = DateValue(TheEndOfContract5) [C5] = TimeValue(TheEndOfContract5)
[B40] = T N = T * 86400 [B41] = N [C18] = N \ 31536000 [C19] = (N Mod 31536000) \ 2629743 [C20] = (N Mod 2629743) \ 86400 [C21] = (N Mod 86400) \ 3600 [C22] = (N Mod 3600) \ 60 [C23] = N Mod 60
End Sub
[/vba]
но он не учитывает, что в феврале 28 дней, помогите пожалуйста)
Здравствуйте, такая проблема мне нужно было написать макрос который будет считать сколько осталось времени до конца договора. Вот само задание: Среда разработки: Microsoft Excel Входные данные (отдельные ячейки для ввода ): Дата начала действия договора: формат dd.mm.yyyy Время начала действия договора формат: hh.mm.ss Время (длительность) действия договора (для каждого поля отдельная ячейка для ввода): Года: yyyy Месяца: mm Дни: dd Часы: hh Минуты: mm Секунды: ss Текущее время и дата (ячейки для ввода): Дата : формат dd.mm.yyyy Время : hh.mm.ss
Задача: Создать кнопку. По нажатию кнопки посчитать и вывести количество оставшегося времени действия договора от текущего момента время. (Взять начало договора приплюсовать длительность действия договора и рассчитать сколько осталось в Годах, месяцах, днях, часах, минутах и секундах до конца и вывести в ячейки) Выходные данные ( для каждого поля отдельная ячейки для вывода): Года: yyyy Месяца: mm Дни: dd Часы: hh Минуты: mm Секунды: ss
есть такой макрос: [vba]
Код
Sub Fg() Dim A As Date, B As Date, I As Date, J As Date Dim C As Integer, D As Integer, E As Integer, F As Integer, G As Integer, H As Integer A = Range("C1").Value B = Range("C2").Value C = Range("C11").Value D = Range("C12").Value E = Range("C13").Value F = Range("C14").Value G = Range("C15").Value H = Range("C16").Value I = Range("C7").Value J = Range("C8").Value StartDate = DateValue(A) + TimeValue(B) TheEndOfContract = DateAdd("yyyy", C, StartDate) TheEndOfContract1 = DateAdd("m", D, TheEndOfContract) TheEndOfContract2 = DateAdd("y", E, TheEndOfContract1) TheEndOfContract3 = DateAdd("h", F, TheEndOfContract2) TheEndOfContract4 = DateAdd("n", G, TheEndOfContract3) TheEndOfContract5 = DateAdd("s", H, TheEndOfContract4) [C6] = TheEndOfContract5 CurrentDate = DateValue(I) + TimeValue(J) [C9] = CurrentDate T = Range("C6").Value - Range("C9").Value [C4] = DateValue(TheEndOfContract5) [C5] = TimeValue(TheEndOfContract5)
[B40] = T N = T * 86400 [B41] = N [C18] = N \ 31536000 [C19] = (N Mod 31536000) \ 2629743 [C20] = (N Mod 2629743) \ 86400 [C21] = (N Mod 86400) \ 3600 [C22] = (N Mod 3600) \ 60 [C23] = N Mod 60
End Sub
[/vba]
но он не учитывает, что в феврале 28 дней, помогите пожалуйста)ih8teuval