Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2009, 10:55   #1
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию выбор даты

Здравствуйте! Прошу помощи в решении такой проблемы. В одной из закрытых тем нашел пример использования ComboBox, где при помощи VBA в данных которые загружаются, убираются дубликаты, и происходит сортировка. А вот если в диапазон вместо чисел поставить дату, тогда это все работает немножко неправильно.
1. Дата показывается в формате ММ/ДД/ГГГГ, а хотелось бы ДД.ММ.ГГГГ.
2. Ну и естественно чтобы после нажатия ComboBox показывал дату в том же формате ДД.ММ.ГГГГ
Вложения
Тип файла: rar ComboBox.rar (12.9 Кб, 56 просмотров)
Screame вне форума Ответить с цитированием
Старый 21.10.2009, 20:28   #2
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Замените часть кода:

'Добавление уникальных значений в ListBox и ComboBox
For Each Item In NoDupes
UserForm1.ComboBox1.AddItem Format(Item, "dd.mm.yy")
Next Item

Обратите внимание на функцию Format()
VovaKl вне форума Ответить с цитированием
Старый 21.10.2009, 20:55   #3
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

СПАСИБО VovaKl, Вы меня выручили!!!
Screame вне форума Ответить с цитированием
Старый 21.10.2009, 22:22   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Вы уже обращались сюда
Евгений.
Вложения
Тип файла: zip ComboBoxSelect.zip (15.6 Кб, 30 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 22.10.2009, 15:58   #5
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

Если можно подскажите еще такое, как в в этом же ComboBox-e добавить перед списком дат пустую строчку, чтоб при необходимости можно было выбирать пустое значение, после того как уже что то выбирали?
Screame вне форума Ответить с цитированием
Старый 22.10.2009, 17:46   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Screame.
добавить пустую строку можно с помощью кода :ComboBox1.AddItem Empty
читать, сортировать и отбирать только уникальные значения данных листа, можно с применением библиотеки ADO, такой способ не требует создания дополнительных объектов для промежуточного заполнения и сортировки.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 22.10.2009, 17:47   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Образец применения
Вложения
Тип файла: zip ComboBoxSelect2.zip (21.1 Кб, 29 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 23.10.2009, 09:37   #8
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

посмотрите мой пример, в диапазоне убрал несколько первых значений в ComboBox и ListBox появляются две пустых строки вместо одной. Можно ли убрать одну лишнюю?
Вложения
Тип файла: zip ComboBoxSelect2_1.zip (19.2 Кб, 25 просмотров)
Screame вне форума Ответить с цитированием
Старый 23.10.2009, 13:18   #9
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Диапазон уже содержит пустую строку, "D2:D12" - пустые, Вы затем добавляете еще одну пустую строку UserForm1.ComboBox1.AddItem Empty. Два варианта - или исходный диапазон не должен содержать пустых строк - или залочьте эту строку апострофом.
VovaKl вне форума Ответить с цитированием
Старый 23.10.2009, 19:30   #10
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Screame.
"Два варианта" которые предложил VovaKl вполне могут быть дополнены ещё одним - проверяйте данные считываемые из диапазона при построении списка:
If Len(rs(0) & "") > 0 Then ListBox1.AddItem rs(0) & ""
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даты Sparky БД в Delphi 6 02.10.2009 09:48
Выбор даты в StringGrid artemavd Общие вопросы Delphi 2 31.07.2009 15:15
Выбор Даты/Времени из БД при помощи DateTimePicker rainbow Общие вопросы Delphi 3 08.10.2008 12:42
Выбор необходимой даты samurayka Помощь студентам 1 20.04.2008 13:50
Даты не даты Nasya Microsoft Office Excel 3 22.08.2007 20:18