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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматический календарь - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Автоматический календарь
Maksimys07 Дата: Воскресенье, 10.03.2024, 21:29 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 46
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Доброго времени суток!!! подскажите пожалуйста имеется ли возможность автоматического заполнения датами при выборе месяца (1 число месяца)???
К сообщению приложен файл: avtomaticheskij_kalendar_pri_v.docx (21.3 Kb)
 
Ответить
СообщениеДоброго времени суток!!! подскажите пожалуйста имеется ли возможность автоматического заполнения датами при выборе месяца (1 число месяца)???

Автор - Maksimys07
Дата добавления - 10.03.2024 в 21:29
Gustav Дата: Понедельник, 11.03.2024, 00:14 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2792
Репутация: 1155 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Не думаю, что есть какая-то такая встроенная возможность, но можно макросом таблицу заполнить.

[vba]
Код
Sub fillMonthDates()
    Dim tbl As Table, c As Integer, r As Integer, rOld As Integer
    Dim d As Integer, dat1 As Date, dat As Date, mDays As Integer
    
    Set tbl = ActiveDocument.Tables.Item(1)
    'очистка ячеек от предыдущих значений дней
    For c = 2 To tbl.Columns.Count
        For r = 1 To tbl.Rows.Count
            tbl.Cell(r, c).Range.Text = ""
        Next r
    Next c
    
    'запрос первого дня месяца
    dat1 = CDate(InputBox("Введите дату начала месяца в формате ДД.ММ.ГГГГ"))
    mDays = Day(DateSerial(Year(dat1), Month(dat1) + 1, 1) - 1)
    
    'генерирование дат в таблице
    c = 2
    For d = 1 To mDays
        dat = dat1 - 1 + d
        r = Weekday(dat, vbMonday)
        If r < rOld Then c = c + 1
        tbl.Cell(r, c).Range.Text = Format(dat, "dd.mm.yyyy")
        rOld = r
    Next d
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНе думаю, что есть какая-то такая встроенная возможность, но можно макросом таблицу заполнить.

[vba]
Код
Sub fillMonthDates()
    Dim tbl As Table, c As Integer, r As Integer, rOld As Integer
    Dim d As Integer, dat1 As Date, dat As Date, mDays As Integer
    
    Set tbl = ActiveDocument.Tables.Item(1)
    'очистка ячеек от предыдущих значений дней
    For c = 2 To tbl.Columns.Count
        For r = 1 To tbl.Rows.Count
            tbl.Cell(r, c).Range.Text = ""
        Next r
    Next c
    
    'запрос первого дня месяца
    dat1 = CDate(InputBox("Введите дату начала месяца в формате ДД.ММ.ГГГГ"))
    mDays = Day(DateSerial(Year(dat1), Month(dat1) + 1, 1) - 1)
    
    'генерирование дат в таблице
    c = 2
    For d = 1 To mDays
        dat = dat1 - 1 + d
        r = Weekday(dat, vbMonday)
        If r < rOld Then c = c + 1
        tbl.Cell(r, c).Range.Text = Format(dat, "dd.mm.yyyy")
        rOld = r
    Next d
End Sub
[/vba]

Автор - Gustav
Дата добавления - 11.03.2024 в 00:14
  • Страница 1 из 1
  • 1
Поиск:

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