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

Вход

Регистрация

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

 

= Мир MS Excel/Выпадающий календарь - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 8
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 7
  • 8
  • »
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Готовые решения » Выпадающий календарь (Для программирующих в среде VBA.)
Выпадающий календарь
Гость Дата: Вторник, 03.07.2012, 06:46 | Сообщение № 41
Группа: Гости
Здравствуйте. VovaK, спасибо, отличный календарь.
Вот только есть вопросик, не работает в объединенных ячейках, помогите поправить пожалуйста, если это возможно
 
Ответить
СообщениеЗдравствуйте. VovaK, спасибо, отличный календарь.
Вот только есть вопросик, не работает в объединенных ячейках, помогите поправить пожалуйста, если это возможно

Автор - Гость
Дата добавления - 03.07.2012 в 06:46
VovaK Дата: Понедельник, 09.07.2012, 12:56 | Сообщение № 42
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Гость, 03.07.2012, 06:46

Должно работать.

В обработчике события SelectionChange должно быть прописано:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F4:G4")) Is Nothing Then
CurrentDate = Format(Now, "dd.mm.yyyy")
DateForm.Show
Range("F4").Value = CurrentDate
End If
End Sub
[/vba]
в этом примере CurrentDate глобальная переменная. Работать в этом примере будет на клик объединенной ячейки "F4:G4".


Всем удачи. У нас все получится.
С уважением, Владимир.


Сообщение отредактировал VovaK - Понедельник, 09.07.2012, 12:58
 
Ответить
СообщениеГость, 03.07.2012, 06:46

Должно работать.

В обработчике события SelectionChange должно быть прописано:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F4:G4")) Is Nothing Then
CurrentDate = Format(Now, "dd.mm.yyyy")
DateForm.Show
Range("F4").Value = CurrentDate
End If
End Sub
[/vba]
в этом примере CurrentDate глобальная переменная. Работать в этом примере будет на клик объединенной ячейки "F4:G4".

Автор - VovaK
Дата добавления - 09.07.2012 в 12:56
VovaK Дата: Понедельник, 09.07.2012, 13:35 | Сообщение № 43
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
CTR,

Пропустил Ваш вопрос. Проблема в том, что дата возвращается в текстовом формате.
Для исправления этого недочета необходимо в процедуре

Private Sub DateButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean) класса DateClass

в самом конце перед End Sub прописать

ActiveCell.Value = DateValue(ActiveCell.Value)

Виноват не досмотрел...


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
СообщениеCTR,

Пропустил Ваш вопрос. Проблема в том, что дата возвращается в текстовом формате.
Для исправления этого недочета необходимо в процедуре

Private Sub DateButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean) класса DateClass

в самом конце перед End Sub прописать

ActiveCell.Value = DateValue(ActiveCell.Value)

Виноват не досмотрел...

Автор - VovaK
Дата добавления - 09.07.2012 в 13:35
Roberto182 Дата: Пятница, 10.08.2012, 11:51 | Сообщение № 44
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Доброго времени суток!

Не большой специалист в VBA пока))) подскажите пожалуйста, где можно поменять в коде календаря выгрузку, чтобы выбранное значение даты он вставлял в textbox другой формы, долго пытался разобраться но что то так и не получилось.

Заранее благодарю.) smile
 
Ответить
СообщениеДоброго времени суток!

Не большой специалист в VBA пока))) подскажите пожалуйста, где можно поменять в коде календаря выгрузку, чтобы выбранное значение даты он вставлял в textbox другой формы, долго пытался разобраться но что то так и не получилось.

Заранее благодарю.) smile

Автор - Roberto182
Дата добавления - 10.08.2012 в 11:51
VovaK Дата: Вторник, 04.09.2012, 14:31 | Сообщение № 45
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Roberto182,

В процедуре

Private Sub DateButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean) класса DateClass

вместо ActiveCell.Value используйте глобальную переменную. значение которой потом передадите соответствующему значению активной формы. По другому не получится.


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
СообщениеRoberto182,

В процедуре

Private Sub DateButton_DblClick(ByVal Cancel As MSForms.ReturnBoolean) класса DateClass

вместо ActiveCell.Value используйте глобальную переменную. значение которой потом передадите соответствующему значению активной формы. По другому не получится.

Автор - VovaK
Дата добавления - 04.09.2012 в 14:31
umperec Дата: Понедельник, 29.10.2012, 21:46 | Сообщение № 46
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Владимир, добрый ночи!

Если получиться, выдите на связь, я написал письмо в личку.

Буду Вам признателен!
 
Ответить
СообщениеВладимир, добрый ночи!

Если получиться, выдите на связь, я написал письмо в личку.

Буду Вам признателен!

Автор - umperec
Дата добавления - 29.10.2012 в 21:46
Alex_ST Дата: Вторник, 30.10.2012, 08:54 | Сообщение № 47
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
umperec,
если у Вас вопрос по Володиному календарю, то здесь его и задавайте. Если не сам Володя, так кто-нибудь другой Вам ответит.
Если же Вам нужно разработать какую-то таблицу под Ваши конкретные требования, то для заказов на форуме есть специальный раздел Работа
А если VovaK не отвечает на личку, так значит его и на форуме нет и Вашего сообщения здесь он всё равно не увидит (вообще-то могли бы и сами в его профиле посмотреть, что он последний раз был на форуме 04.09.2012)
А потому Ваш последний пост по сути является оффтопом



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщениеumperec,
если у Вас вопрос по Володиному календарю, то здесь его и задавайте. Если не сам Володя, так кто-нибудь другой Вам ответит.
Если же Вам нужно разработать какую-то таблицу под Ваши конкретные требования, то для заказов на форуме есть специальный раздел Работа
А если VovaK не отвечает на личку, так значит его и на форуме нет и Вашего сообщения здесь он всё равно не увидит (вообще-то могли бы и сами в его профиле посмотреть, что он последний раз был на форуме 04.09.2012)
А потому Ваш последний пост по сути является оффтопом

Автор - Alex_ST
Дата добавления - 30.10.2012 в 08:54
Next2012 Дата: Воскресенье, 18.11.2012, 16:16 | Сообщение № 48
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

А не мог бы кто нибудь знающий добавить в календарь кнопочку "Очистить", чтобы удалять неверно выбранную дату? (у меня стоит защита от редактирования на документе, возможно только выделение ячейки, по которому как раз выскакивает календарь). Большущее было бы ему спасибо = )
 
Ответить
СообщениеА не мог бы кто нибудь знающий добавить в календарь кнопочку "Очистить", чтобы удалять неверно выбранную дату? (у меня стоит защита от редактирования на документе, возможно только выделение ячейки, по которому как раз выскакивает календарь). Большущее было бы ему спасибо = )

Автор - Next2012
Дата добавления - 18.11.2012 в 16:16
Next2012 Дата: Понедельник, 19.11.2012, 03:02 | Сообщение № 49
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Все, сам сделал =)
 
Ответить
СообщениеВсе, сам сделал =)

Автор - Next2012
Дата добавления - 19.11.2012 в 03:02
Poltava Дата: Пятница, 14.12.2012, 17:27 | Сообщение № 50
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

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

1) Если после вызова календарика сразу (не переключая месяц, или год) войти в режим ввода в ручную то текущий год не подставляется!
В процедуре Private Sub UserForm_Activate() строку [vba]
Code
   CurrentYear = Str(Year(initDate))
[/vba]заменил на две строки[vba]
Code
   CurrentYear = CStr(Year(initDate))
           tbxYear.Text = CurrentYear
[/vba]
2) После изменения года с помощью кнопочки SpinButton и последующем переходе в режим ручного ввода года перед ним появляется пробел и для того чтобы изменить год нужно не просто стереть последнюю цифру и вписать свою а еще и удалить пробел потому что количество символов в поле логично ограничено четырмя
В процедуре Private Sub sbtSelectYear_Change() заменил строку [vba]
Code
   CurrentYear = Str(sbtSelectYear.Value)
[/vba] заменил на строку [vba]
Code
   CurrentYear = CStr(sbtSelectYear.Value)
[/vba]
3)Пока писал еще один баг вылез при попытке изменить месяц, периодически начала с ошибкой "Type mismatch" вылетать процедура Function DayOfWeek(iDay%, iMonth%, lYear&). До корней данной проблемы пока не успел добраться но кажется проблема в том что если выбрана дата отсутствующая в следующем месяце (допустим 31.01.10) то календарик пытается присвоить заголовку окна значение 31.02.10 естественно что такая дата не существует и процедура вылетает с ошибкой. Решения пока еще не придумал.

PS: Может кто то уже все эти и пока не найденные мной проблемы уже нашел и решил тогда может поделитесь последней версией файла. Если нет то может имеет смысл коллективными усилиями допилить этот проект до рабочего и выложить новую версию. Ведь календарик по сути весьма не плох


Сообщение отредактировал Poltava - Пятница, 14.12.2012, 23:22
 
Ответить
СообщениеСкачал отсюдова последний вариант календарика, помимо уже замеченного здесь увидел еще пару недоработок ниже описание и мой вариант решения проблемы

1) Если после вызова календарика сразу (не переключая месяц, или год) войти в режим ввода в ручную то текущий год не подставляется!
В процедуре Private Sub UserForm_Activate() строку [vba]
Code
   CurrentYear = Str(Year(initDate))
[/vba]заменил на две строки[vba]
Code
   CurrentYear = CStr(Year(initDate))
           tbxYear.Text = CurrentYear
[/vba]
2) После изменения года с помощью кнопочки SpinButton и последующем переходе в режим ручного ввода года перед ним появляется пробел и для того чтобы изменить год нужно не просто стереть последнюю цифру и вписать свою а еще и удалить пробел потому что количество символов в поле логично ограничено четырмя
В процедуре Private Sub sbtSelectYear_Change() заменил строку [vba]
Code
   CurrentYear = Str(sbtSelectYear.Value)
[/vba] заменил на строку [vba]
Code
   CurrentYear = CStr(sbtSelectYear.Value)
[/vba]
3)Пока писал еще один баг вылез при попытке изменить месяц, периодически начала с ошибкой "Type mismatch" вылетать процедура Function DayOfWeek(iDay%, iMonth%, lYear&). До корней данной проблемы пока не успел добраться но кажется проблема в том что если выбрана дата отсутствующая в следующем месяце (допустим 31.01.10) то календарик пытается присвоить заголовку окна значение 31.02.10 естественно что такая дата не существует и процедура вылетает с ошибкой. Решения пока еще не придумал.

PS: Может кто то уже все эти и пока не найденные мной проблемы уже нашел и решил тогда может поделитесь последней версией файла. Если нет то может имеет смысл коллективными усилиями допилить этот проект до рабочего и выложить новую версию. Ведь календарик по сути весьма не плох

Автор - Poltava
Дата добавления - 14.12.2012 в 17:27
Alex_ST Дата: Пятница, 14.12.2012, 18:03 | Сообщение № 51
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Poltava,
привет! Рад видеть "в миру".
Володин календарь я доделывал в основном в части редизайна, а код практически не трогал - только чуть причёсывал.
А потом решил, что проще сделать свой. Топик JP_Сalendar ты не смотрел?

Если не понравился, то можешь довести до блеска и этот. Я думаю, народ будет тебе за это благодарен.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеPoltava,
привет! Рад видеть "в миру".
Володин календарь я доделывал в основном в части редизайна, а код практически не трогал - только чуть причёсывал.
А потом решил, что проще сделать свой. Топик JP_Сalendar ты не смотрел?

Если не понравился, то можешь довести до блеска и этот. Я думаю, народ будет тебе за это благодарен.

Автор - Alex_ST
Дата добавления - 14.12.2012 в 18:03
Poltava Дата: Пятница, 14.12.2012, 19:20 | Сообщение № 52
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Ясно спасибо! На ваш календарик смотрел, как в принципе и на календарик от EducatedFool но этот подкупил своей красотой и необычностью. Ладно если никто не доделывал тогда постараюсь доработать, исправить найденные ошибки и выложить здесь на суд общественности. Но я сразу предупреждаю я не программист, я только пытаюсь учиться, так что если что прошу не бить если буду задавать глупые вопросы smile
 
Ответить
СообщениеЯсно спасибо! На ваш календарик смотрел, как в принципе и на календарик от EducatedFool но этот подкупил своей красотой и необычностью. Ладно если никто не доделывал тогда постараюсь доработать, исправить найденные ошибки и выложить здесь на суд общественности. Но я сразу предупреждаю я не программист, я только пытаюсь учиться, так что если что прошу не бить если буду задавать глупые вопросы smile

Автор - Poltava
Дата добавления - 14.12.2012 в 19:20
Alex_ST Дата: Пятница, 14.12.2012, 20:45 | Сообщение № 53
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Poltava, ссылку в своём посте на календарь Игоря (EducatedFool) исправьте на ТАКУЮ
А Володин календарь очень хорошо будет хоть кому-нибудь довести до полного блеска - уж очень оригинально задуман по дизайну. А сам Володя тут в последнее время очень редко появляется...
Ну и на счёт своего опыта не прибедняйтесь: большинство из постоянных участников форума в миру кроме того ещё обычно тусят ещё как минимум на 2-3-4 форумах по "любимой головоломке", в том числе - и у Шмуйловича, где Вы достаточно хорошо известны и имеете заслуженно высокую репутацию.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 14.12.2012, 20:47
 
Ответить
СообщениеPoltava, ссылку в своём посте на календарь Игоря (EducatedFool) исправьте на ТАКУЮ
А Володин календарь очень хорошо будет хоть кому-нибудь довести до полного блеска - уж очень оригинально задуман по дизайну. А сам Володя тут в последнее время очень редко появляется...
Ну и на счёт своего опыта не прибедняйтесь: большинство из постоянных участников форума в миру кроме того ещё обычно тусят ещё как минимум на 2-3-4 форумах по "любимой головоломке", в том числе - и у Шмуйловича, где Вы достаточно хорошо известны и имеете заслуженно высокую репутацию.

Автор - Alex_ST
Дата добавления - 14.12.2012 в 20:45
nerv Дата: Пятница, 14.12.2012, 21:27 | Сообщение № 54
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (Poltava)
так что если что прошу не бить

Не бить? Это как? happy

Quote (Alex_ST)
А сам Володя тут в последнее время очень редко появляется...

да, жаль sad


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 14.12.2012, 21:30
 
Ответить
Сообщение
Quote (Poltava)
так что если что прошу не бить

Не бить? Это как? happy

Quote (Alex_ST)
А сам Володя тут в последнее время очень редко появляется...

да, жаль sad

Автор - nerv
Дата добавления - 14.12.2012 в 21:27
Poltava Дата: Пятница, 14.12.2012, 22:02 | Сообщение № 55
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Quote
ссылку в своём посте на календарь Игоря (EducatedFool) исправьте
нет я имел ввиду именно календарик вызываемый из формы в файле по моей ссылке, а о том календарике на который Вы просите исправить ссылку я думал но во первых он мне показался более сложным для понимания, а как результат и для внедрения во вторых насколько я понял он есть для х64 и х32 версий то есть нужно будет еще и с этим разбираться и это еще одна причина по которой меня привлек именно календарик от VovaK
 
Ответить
Сообщение
Quote
ссылку в своём посте на календарь Игоря (EducatedFool) исправьте
нет я имел ввиду именно календарик вызываемый из формы в файле по моей ссылке, а о том календарике на который Вы просите исправить ссылку я думал но во первых он мне показался более сложным для понимания, а как результат и для внедрения во вторых насколько я понял он есть для х64 и х32 версий то есть нужно будет еще и с этим разбираться и это еще одна причина по которой меня привлек именно календарик от VovaK

Автор - Poltava
Дата добавления - 14.12.2012 в 22:02
nerv Дата: Пятница, 14.12.2012, 23:30 | Сообщение № 56
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Poltava, я сейчас (по мере свободного времени) пишу код для позиционирования формы возле ячейки без API. Тест для 2007+ был здесь. Если разбираешься в vba, можешь припаять.

Чуть позже выложу обновленный для 2007+ на гитхаб.


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
СообщениеPoltava, я сейчас (по мере свободного времени) пишу код для позиционирования формы возле ячейки без API. Тест для 2007+ был здесь. Если разбираешься в vba, можешь припаять.

Чуть позже выложу обновленный для 2007+ на гитхаб.

Автор - nerv
Дата добавления - 14.12.2012 в 23:30
Poltava Дата: Суббота, 15.12.2012, 00:56 | Сообщение № 57
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Можно будет попытаться позже по свободе прикрутить! но пока главной задачей вижу хотя бы в существующем коде отловить все баги! Вот только что еще на один наткнулся!
 
Ответить
СообщениеМожно будет попытаться позже по свободе прикрутить! но пока главной задачей вижу хотя бы в существующем коде отловить все баги! Вот только что еще на один наткнулся!

Автор - Poltava
Дата добавления - 15.12.2012 в 00:56
карандаш Дата: Понедельник, 18.02.2013, 00:18 | Сообщение № 58
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
вопрос по календарю

возможно ли изменить "конструкцию" календаря (что-то вроде представленной во вложенном файле), чтобы установка требуемой даты достигалась в три клика (если год находится "в прямой доступности"
К сообщению приложен файл: kalendar-p.xls (36.0 Kb)


Сообщение отредактировал карандаш - Понедельник, 18.02.2013, 00:21
 
Ответить
Сообщениевопрос по календарю

возможно ли изменить "конструкцию" календаря (что-то вроде представленной во вложенном файле), чтобы установка требуемой даты достигалась в три клика (если год находится "в прямой доступности"

Автор - карандаш
Дата добавления - 18.02.2013 в 00:18
VovaK Дата: Понедельник, 11.03.2013, 15:53 | Сообщение № 59
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Poltava,
Действительно не обращал внимания, но факт - при прокрутке в шапке формы индицируются несуществующие даты типа 31 февраля с днем недели от 3 марта.

Предлагаю при прокрутке менять текущую дату на первое число месяца - будет логично.

Для этого в процедуре

[vba]
Код
Private Sub scbMonth_Change()
[/vba]
в самом конце вместо
[vba]
Код
Me.Caption = NameDayOfWeek(DayOfWeek(CurrentDay, Mon, CLng(CurrentYear))) & " " & CurrentDay & " " & MonthForDay(Mon) & " " & CurrentYear
[/vba]
Вставить

[vba]
Код
Me.Caption = NameDayOfWeek(DayOfWeek(1, Mon, CLng(CurrentYear))) & " 1 " & MonthForDay(Mon) & " " & CurrentYear
[/vba]

Отображение будет корректным...


Всем удачи. У нас все получится.
С уважением, Владимир.


Сообщение отредактировал VovaK - Понедельник, 11.03.2013, 15:54
 
Ответить
СообщениеPoltava,
Действительно не обращал внимания, но факт - при прокрутке в шапке формы индицируются несуществующие даты типа 31 февраля с днем недели от 3 марта.

Предлагаю при прокрутке менять текущую дату на первое число месяца - будет логично.

Для этого в процедуре

[vba]
Код
Private Sub scbMonth_Change()
[/vba]
в самом конце вместо
[vba]
Код
Me.Caption = NameDayOfWeek(DayOfWeek(CurrentDay, Mon, CLng(CurrentYear))) & " " & CurrentDay & " " & MonthForDay(Mon) & " " & CurrentYear
[/vba]
Вставить

[vba]
Код
Me.Caption = NameDayOfWeek(DayOfWeek(1, Mon, CLng(CurrentYear))) & " 1 " & MonthForDay(Mon) & " " & CurrentYear
[/vba]

Отображение будет корректным...

Автор - VovaK
Дата добавления - 11.03.2013 в 15:53
Alex_ST Дата: Понедельник, 11.03.2013, 16:36 | Сообщение № 60
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, тогда уж для красоты не плохо было бы и кнопку 1-го числа нажатой оформлять.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу, тогда уж для красоты не плохо было бы и кнопку 1-го числа нажатой оформлять.

Автор - Alex_ST
Дата добавления - 11.03.2013 в 16:36
Мир MS Excel » Вопросы и решения » Готовые решения » Выпадающий календарь (Для программирующих в среде VBA.)
  • Страница 3 из 8
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 7
  • 8
  • »
Поиск:

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