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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2013, 15:44   #1
ssg
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 12
По умолчанию Автозавершение значений в UserForm

Добрый день!

Столкнулся со следующей проблемой:
В Excel реализован механизм автозавершения значений ячеек.Т.е., ежели я начинаю вводить в ячейку значение, мне предлагается список ранне введенных значений в этот столбец ранее.

Вопрос, как этот же механизм реализовать для ввода данных в Форму Ввода (UserForm)?

Google ответа не дал (может плохо спрашивал).

Помогите пожалуйста, кто чем может.

Спасибо.
ssg вне форума Ответить с цитированием
Старый 09.05.2013, 16:25   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Вот пример формы. Что в ней не так?

Как проверить: запустите форму, начните вводить текст "Text", появится текст в поле. Начните вводить "Мой текст", появится текст в поле.
Вложения
Тип файла: zip Форма.zip (1.1 Кб, 42 просмотров)
Скрипт вне форума Ответить с цитированием
Старый 09.05.2013, 16:59   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Что именно нужно то?
Где в форме тот столбец?
Было несколько вариантов, но может быть всё не то, что нужно...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.05.2013, 20:51   #4
ssg
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
Вот пример формы. Что в ней не так?

Как проверить: запустите форму, начните вводить текст "Text", появится текст в поле. Начните вводить "Мой текст", появится текст в поле.
Извини за тупость, архив распаковал, но не понял, как в Excel-е запустить предложенные файлы. Может пояснишь для особо "одаренных".
ssg вне форума Ответить с цитированием
Старый 09.05.2013, 20:59   #5
ssg
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Что именно нужно то?
Где в форме тот столбец?
Было несколько вариантов, но может быть всё не то, что нужно...
Есть форма (Userform1). В этой форме есть несколько полей для ввода.
Конкретно, рассмотрим поле - TextBox2. В этом поле вводим ФИО, которе заносится в соответствующую ячейку таблицы Excel - столбец "В". Формат ячейки - общий.

Все это работает.

Нужен алгоритм, как при вводе ФИО в поле TextBox2 будет работать автозавершение (подбирать значение из тех, что были ранее введены в ячейки Excel). В Excel это называется Автозавершение значений.

Да, что такое список я знаю (использую combobox с загрузкой данных из именованного диапазона при инициализации формы). Но не в этом случае. Тут ФИО постоянно добавляются, нет постоянного списка.

Вот и спрашиваю - как реализовать метод Автозавершение значений применительно к TextBox2 в форме Userform1.
ssg вне форума Ответить с цитированием
Старый 09.05.2013, 21:05   #6
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

  1. Разархивируйте то, что я выложил;
  2. перейдите в VBA;
  3. File - Import File... - выберите то, что разархивировали;
  4. в VBA появится форма.
Скрипт вне форума Ответить с цитированием
Старый 09.05.2013, 21:10   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Я бы делал примерно так, на двух элементах.
Листбокс можно скрывать, когда он не нужен.
Было много подобных решений - взял что попроще.
Вложения
Тип файла: rar Поискпобуквам.rar (24.0 Кб, 49 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.05.2013, 21:19   #8
ssg
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Я бы делал примерно так, на двух элементах.
Листбокс можно скрывать, когда он не нужен.
Было много подобных решений - взял что попроще.
Спасибо, хороший вариант.
Но мне желательно без 2-го поля (в Вашем примере это listbox).

Как реализовать это же но на одном поле.
А как скрывать listbox?
т.е. при инициализации формы фокус автоматом становится в поле ФИО (textbox). Как открывать при этом listbox, а сразу после ввода значения прятать его ??

Последний раз редактировалось ssg; 09.05.2013 в 21:27.
ssg вне форума Ответить с цитированием
Старый 09.05.2013, 22:11   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Я думаю при изменении значения в текстбоксе, если оно есть - показываем. Если нет, или после выбора значения в листбоксе - скрываем (visible=false)
Ну и изначально листбокс должен быть скрыт - в свойствах или при инициализации.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 09.05.2013 в 22:15.
Hugo121 вне форума Ответить с цитированием
Старый 09.05.2013, 22:18   #10
ssg
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Я думаю при изменении значения в текстбоксе, если оно есть - показываем. Если нет, или после выбора значения в листбоксе - скрываем (visible=false)
Ну и изначально листбокс должен быть скрыт - в свойствах или при инициализации.
Спасибо!
Боюсь показаться надоедлевым, а не дашь кусок кода (изменение значения в текстбоксе) и выбор значения. Какие условия?
Спасибо.
ssg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
userform 0creator0 Microsoft Office Excel 0 07.12.2011 22:41
userform alegl Помощь студентам 1 16.12.2010 00:58
UserForm i777 Microsoft Office Excel 2 17.11.2010 02:04
Сохранение и загрузка в файл текстовых значений и значений типа Boolean krikaved Общие вопросы Delphi 1 16.03.2010 07:53
Автозавершение... Busine2009 Microsoft Office Excel 2 02.07.2009 05:01