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

Вход

Регистрация

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

 

= Мир MS Excel/Смена года в календаре - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Смена года в календаре (Макросы/Sub)
Смена года в календаре
vdekameron Дата: Среда, 25.01.2017, 15:14 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день уважаемые спецы! Очень нужно решить одну, для меня непосильную, задачу.
Есть рукописный календарь на 2016г.
Нужно чтобы при нажатии на кнопку происходила смена года(происходила смена дат и ячейки напротив дат становились с бордером, все как в образце только уже 2017 год.)

PS Конечно идеально было бы с возможностью еще и выбора календарь какого года вывести, но если это сложно то буду очень благодарен если просто получится текущий год выводить.

Заранее спасибо за потраченное время!!!!!!!
К сообщению приложен файл: 9584128.xlsx (23.5 Kb)
 
Ответить
СообщениеДобрый день уважаемые спецы! Очень нужно решить одну, для меня непосильную, задачу.
Есть рукописный календарь на 2016г.
Нужно чтобы при нажатии на кнопку происходила смена года(происходила смена дат и ячейки напротив дат становились с бордером, все как в образце только уже 2017 год.)

PS Конечно идеально было бы с возможностью еще и выбора календарь какого года вывести, но если это сложно то буду очень благодарен если просто получится текущий год выводить.

Заранее спасибо за потраченное время!!!!!!!

Автор - vdekameron
Дата добавления - 25.01.2017 в 15:14
RAN Дата: Среда, 25.01.2017, 15:38 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеhttp://www.excelworld.ru/forum/3-1322-63882-16-1380966977

Автор - RAN
Дата добавления - 25.01.2017 в 15:38
vdekameron Дата: Среда, 25.01.2017, 15:42 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Мне совершенно другое нужно, если бы мне нужен был просто календарь, то вопрос стоял бы по-другому.
 
Ответить
СообщениеRAN, Мне совершенно другое нужно, если бы мне нужен был просто календарь, то вопрос стоял бы по-другому.

Автор - vdekameron
Дата добавления - 25.01.2017 в 15:42
nilem Дата: Среда, 25.01.2017, 17:54 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
vdekameron, привет
попробуйте вот так (меняем год в AD1 и жмем зеленую кнопку)
[vba]
Код
Sub ertert()
Dim yr&, mnth(), i&, j&, dt As Date
Dim rw&, t&, arr, r As Range
yr = Sheets("Лист1").Range("AD1").Value
arr = Array("C5", "R5", "AG5", "AV5", "C15", "R15", "AG15", "AV15", "C25", "R25", "AG25", "AV25")
For i = 1 To 12
    ReDim mnth(1 To 6, 1 To 14): rw = 1
    For j = 1 To 31
        dt = DateSerial(yr, i, j)
        t = Weekday(dt, vbMonday)

        mnth(rw, t * 2 - 1) = j
        If t = 7 Then rw = rw + 1
    Next j
    Range(arr(i - 1)).Resize(UBound(mnth), UBound(mnth, 2)).Value = mnth
Next i
With Range("C5:BI30")
    .Borders.LineStyle = xlNone
    For Each r In .Cells
        If IsNumeric(r.Value) And r.Value > 0 Then r(1, 2).Borders.LineStyle = 1
    Next r
End With
End Sub
[/vba]
К сообщению приложен файл: _9584128.xlsm (28.0 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеvdekameron, привет
попробуйте вот так (меняем год в AD1 и жмем зеленую кнопку)
[vba]
Код
Sub ertert()
Dim yr&, mnth(), i&, j&, dt As Date
Dim rw&, t&, arr, r As Range
yr = Sheets("Лист1").Range("AD1").Value
arr = Array("C5", "R5", "AG5", "AV5", "C15", "R15", "AG15", "AV15", "C25", "R25", "AG25", "AV25")
For i = 1 To 12
    ReDim mnth(1 To 6, 1 To 14): rw = 1
    For j = 1 To 31
        dt = DateSerial(yr, i, j)
        t = Weekday(dt, vbMonday)

        mnth(rw, t * 2 - 1) = j
        If t = 7 Then rw = rw + 1
    Next j
    Range(arr(i - 1)).Resize(UBound(mnth), UBound(mnth, 2)).Value = mnth
Next i
With Range("C5:BI30")
    .Borders.LineStyle = xlNone
    For Each r In .Cells
        If IsNumeric(r.Value) And r.Value > 0 Then r(1, 2).Borders.LineStyle = 1
    Next r
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 25.01.2017 в 17:54
vdekameron Дата: Среда, 25.01.2017, 18:45 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, Добрый день!
Огромнейшее Вам спасибо!!!!!!! Бегло проверил вроде все отлично, только нашел один косяк.....у всех месяцев 31 день))) Буду признателен если поправите код.
 
Ответить
Сообщениеnilem, Добрый день!
Огромнейшее Вам спасибо!!!!!!! Бегло проверил вроде все отлично, только нашел один косяк.....у всех месяцев 31 день))) Буду признателен если поправите код.

Автор - vdekameron
Дата добавления - 25.01.2017 в 18:45
nilem Дата: Среда, 25.01.2017, 18:59 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Ну а что, пусть у всех будет 31 день. Нормально :)
одну строчку добавим


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеНу а что, пусть у всех будет 31 день. Нормально :)
одну строчку добавим

Автор - nilem
Дата добавления - 25.01.2017 в 18:59
vdekameron Дата: Среда, 25.01.2017, 23:22 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, Я был бы не против) Тогда времени было бы больше))
Спасибо вам большое! И огромный респект. Всегда уважал программистов! У меня допустим голова так не варит...))
 
Ответить
Сообщениеnilem, Я был бы не против) Тогда времени было бы больше))
Спасибо вам большое! И огромный респект. Всегда уважал программистов! У меня допустим голова так не варит...))

Автор - vdekameron
Дата добавления - 25.01.2017 в 23:22
Tezcatlipoca Дата: Среда, 08.02.2017, 10:02 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Календарь без программирования.

Год можно менять спин-кнопкой на любой странице. Все формулы на странице "настройка и расчет", если интересно...
"Бордюристые" ячейки сделаны условным форматированием: Есть число слева? Рисуем рамку!
Вертикальный календарь сделан без них, но кто нам мешает вставить столбцы и скопировать форматирование?

Защита на страницах "декоративная", без пароля, чтоб случайно что-нибудь не удалить.

Форматируем календарь под себя и печатаем, спин-кнопка на печать не выводится.
К сообщению приложен файл: 9865016.xlsx (88.3 Kb)
 
Ответить
СообщениеКалендарь без программирования.

Год можно менять спин-кнопкой на любой странице. Все формулы на странице "настройка и расчет", если интересно...
"Бордюристые" ячейки сделаны условным форматированием: Есть число слева? Рисуем рамку!
Вертикальный календарь сделан без них, но кто нам мешает вставить столбцы и скопировать форматирование?

Защита на страницах "декоративная", без пароля, чтоб случайно что-нибудь не удалить.

Форматируем календарь под себя и печатаем, спин-кнопка на печать не выводится.

Автор - Tezcatlipoca
Дата добавления - 08.02.2017 в 10:02
Pelena Дата: Среда, 08.02.2017, 10:14 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19185
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Календарь без программирования

А запостили в раздел по VBA, да ещё в чужую тему.
Для готовых решений на форуме есть одноименная ветка. Создайте тему там, а здесь я удалю потом


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Календарь без программирования

А запостили в раздел по VBA, да ещё в чужую тему.
Для готовых решений на форуме есть одноименная ветка. Создайте тему там, а здесь я удалю потом

Автор - Pelena
Дата добавления - 08.02.2017 в 10:14
Tezcatlipoca Дата: Пятница, 10.02.2017, 16:35 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Запостил именно сюда, как ответ на вопрос vdekameron.
Что он просил? "Нужно чтобы при нажатии на кнопку происходила смена года(происходила смена дат и ячейки напротив дат становились с бордером, все как в образце только уже 2017 год.)"
Я так и сделал. Хотите, сделаю то же самое, только на VBA, только какой смысл?
Чтоб купить хлеб, не всегда ведь нужен транспорт.

Если сильно мешает, можете удалить.
Переносить в "готовые решения"? даже не знаю... не думаю, что сделал что-то выдающееся
Я, конечно, спрошу vdekameron-а в личке, нужен ли ему мой вариант, может ему именно VBA требовался...
 
Ответить
СообщениеЗапостил именно сюда, как ответ на вопрос vdekameron.
Что он просил? "Нужно чтобы при нажатии на кнопку происходила смена года(происходила смена дат и ячейки напротив дат становились с бордером, все как в образце только уже 2017 год.)"
Я так и сделал. Хотите, сделаю то же самое, только на VBA, только какой смысл?
Чтоб купить хлеб, не всегда ведь нужен транспорт.

Если сильно мешает, можете удалить.
Переносить в "готовые решения"? даже не знаю... не думаю, что сделал что-то выдающееся
Я, конечно, спрошу vdekameron-а в личке, нужен ли ему мой вариант, может ему именно VBA требовался...

Автор - Tezcatlipoca
Дата добавления - 10.02.2017 в 16:35
Pelena Дата: Пятница, 10.02.2017, 18:42 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19185
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Tezcatlipoca, если это ответ на вопрос, оставлю здесь. Из контекста не было понятно


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеTezcatlipoca, если это ответ на вопрос, оставлю здесь. Из контекста не было понятно

Автор - Pelena
Дата добавления - 10.02.2017 в 18:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Смена года в календаре (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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