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

Вход

Регистрация

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

 

= Мир MS Excel/ComboBox, добавление и удаление строчек. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ComboBox, добавление и удаление строчек. (Макросы Sub)
ComboBox, добавление и удаление строчек.
Dмитрий Дата: Четверг, 17.10.2013, 22:37 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Добрый вечер!
Подскажите, пожалуйста, как сделать так, чтобы в ComboBox, расположенный на форме можно было выбирать определенные строчки и выбор выводился в ячейку на лист Эксель. При загрузке формы, эксель в фоновом режиме. В качестве строчек для выбора - использовать диапазон ячеек на листе. Неизвестно, какого размера диапазон. Проще говоря, ввели значение в ComboBox, если его нет среди имеющихся значений, то оно добавилось в этот диапазон и в дальнейшем будет отображаться в списке. Если ввел что-то некорректно, то можно было удалить это значение. А отображение уже имеющихся в списке слов, в зависимости от введенных первых букв, я так понимаю, можно поставить в свойствах.
Может у кого есть какие-нибудь наработки или идеи?
 
Ответить
СообщениеДобрый вечер!
Подскажите, пожалуйста, как сделать так, чтобы в ComboBox, расположенный на форме можно было выбирать определенные строчки и выбор выводился в ячейку на лист Эксель. При загрузке формы, эксель в фоновом режиме. В качестве строчек для выбора - использовать диапазон ячеек на листе. Неизвестно, какого размера диапазон. Проще говоря, ввели значение в ComboBox, если его нет среди имеющихся значений, то оно добавилось в этот диапазон и в дальнейшем будет отображаться в списке. Если ввел что-то некорректно, то можно было удалить это значение. А отображение уже имеющихся в списке слов, в зависимости от введенных первых букв, я так понимаю, можно поставить в свойствах.
Может у кого есть какие-нибудь наработки или идеи?

Автор - Dмитрий
Дата добавления - 17.10.2013 в 22:37
VictorM Дата: Четверг, 17.10.2013, 22:43 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 27 ±
Замечаний: 0% ±

Цитата
Может у кого есть какие-нибудь наработки или идеи?

Есть. Смотрите
 
Ответить
Сообщение
Цитата
Может у кого есть какие-нибудь наработки или идеи?

Есть. Смотрите

Автор - VictorM
Дата добавления - 17.10.2013 в 22:43
Dмитрий Дата: Четверг, 17.10.2013, 23:06 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Да, спасибо за помощь. Я уже видел этот код
[vba]
Код
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     If KeyCode = vbKeyReturn Then
        With Me.ComboBox1
             If Not .MatchFound Then .AddItem .Value
        End With
     End If
End Sub

Private Sub UserForm_Initialize()
     Me.ComboBox1.MatchRequired = True
End Sub
[/vba]
Значения не сохраняются и при повторной загрузке нужно вводить все заново. В таком случае зачем ComboBox вообще нужен?
Клавиша ENTER - можно ли обойтись без нее? Просто щелкнуть мышкой по другому объекту на форме
Плюс ко всему удалить введенные значения то же нельзя
То есть ничего из того что я писал выше не реализовывается.
 
Ответить
СообщениеДа, спасибо за помощь. Я уже видел этот код
[vba]
Код
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     If KeyCode = vbKeyReturn Then
        With Me.ComboBox1
             If Not .MatchFound Then .AddItem .Value
        End With
     End If
End Sub

Private Sub UserForm_Initialize()
     Me.ComboBox1.MatchRequired = True
End Sub
[/vba]
Значения не сохраняются и при повторной загрузке нужно вводить все заново. В таком случае зачем ComboBox вообще нужен?
Клавиша ENTER - можно ли обойтись без нее? Просто щелкнуть мышкой по другому объекту на форме
Плюс ко всему удалить введенные значения то же нельзя
То есть ничего из того что я писал выше не реализовывается.

Автор - Dмитрий
Дата добавления - 17.10.2013 в 23:06
VictorM Дата: Четверг, 17.10.2013, 23:14 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 27 ±
Замечаний: 0% ±

Из первого Вашего поста я понял, что Вам нужны
Цитата
наработки или идеи

И я Вам дал ссылку именно на НАРАБОТКИ и ИДЕИ, а отнюдь не на готовые решения именно Вашей задачи.
далеко не на каждую конкретную задачу существует готовый код, да он и не нужен.
По ссылке - множество готовых примеров, а уж приспособить их под свою, конкретную задачу, при желании,можно.


Сообщение отредактировал VictorM - Четверг, 17.10.2013, 23:15
 
Ответить
СообщениеИз первого Вашего поста я понял, что Вам нужны
Цитата
наработки или идеи

И я Вам дал ссылку именно на НАРАБОТКИ и ИДЕИ, а отнюдь не на готовые решения именно Вашей задачи.
далеко не на каждую конкретную задачу существует готовый код, да он и не нужен.
По ссылке - множество готовых примеров, а уж приспособить их под свою, конкретную задачу, при желании,можно.

Автор - VictorM
Дата добавления - 17.10.2013 в 23:14
Dмитрий Дата: Четверг, 17.10.2013, 23:15 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
В принципе, не нужно что бы значения удалялись из формы. Главное что бы значения из которых формируется список находился на каком-нибудь листе. Там же его можно было и подкорректировать, а ввод слова не содержащегося в списке автоматически туда добавлялся, и в дальнейшем, например при открытии Эксель опять присутствовал в этом ComboBox
 
Ответить
СообщениеВ принципе, не нужно что бы значения удалялись из формы. Главное что бы значения из которых формируется список находился на каком-нибудь листе. Там же его можно было и подкорректировать, а ввод слова не содержащегося в списке автоматически туда добавлялся, и в дальнейшем, например при открытии Эксель опять присутствовал в этом ComboBox

Автор - Dмитрий
Дата добавления - 17.10.2013 в 23:15
AndreTM Дата: Четверг, 17.10.2013, 23:25 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
присутствовал в этом ComboBox
Если честно - то вам нужен функционал ListBox. И EditBox (Text) для ввода. Будет намного проще.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
присутствовал в этом ComboBox
Если честно - то вам нужен функционал ListBox. И EditBox (Text) для ввода. Будет намного проще.

Автор - AndreTM
Дата добавления - 17.10.2013 в 23:25
wild_pig Дата: Четверг, 17.10.2013, 23:51 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Прилепите уже файл с формой, а то ночь как бы скоро
 
Ответить
СообщениеПрилепите уже файл с формой, а то ночь как бы скоро

Автор - wild_pig
Дата добавления - 17.10.2013 в 23:51
Dмитрий Дата: Пятница, 18.10.2013, 08:06 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Вот файл с формой
К сообщению приложен файл: 4869160.xlsb (16.8 Kb)
 
Ответить
СообщениеВот файл с формой

Автор - Dмитрий
Дата добавления - 18.10.2013 в 08:06
Dмитрий Дата: Пятница, 18.10.2013, 12:04 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Вот попробовал. Можно как-то так. Значения добавляет, но не прописывает новые значения на лист (столбец А) и не выводит выбранное значение в другую ячейку, например С3. Опять же можно ли обойтись без ENTER???
К сообщению приложен файл: 9776253.xlsb (18.9 Kb)
 
Ответить
СообщениеВот попробовал. Можно как-то так. Значения добавляет, но не прописывает новые значения на лист (столбец А) и не выводит выбранное значение в другую ячейку, например С3. Опять же можно ли обойтись без ENTER???

Автор - Dмитрий
Дата добавления - 18.10.2013 в 12:04
wild_pig Дата: Пятница, 18.10.2013, 15:42 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Легче не стало. Я имел ввиду оригинальный или максимально похожий файл, а ещё расскажите зачем это надо, может есть другие варианты решения вопроса.
 
Ответить
СообщениеЛегче не стало. Я имел ввиду оригинальный или максимально похожий файл, а ещё расскажите зачем это надо, может есть другие варианты решения вопроса.

Автор - wild_pig
Дата добавления - 18.10.2013 в 15:42
Dмитрий Дата: Пятница, 18.10.2013, 16:35 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Постараюсь объяснить. На форме есть два ComboBox, в одном вводится аббревиатура организации, в другом, собственно, само наименование организации. Все это, в зависимости от выбранного значения заносится на новый лист эксель, что в последствие и печатается.
Организации, как и их аббревиатуры, повторяются, вот я и подумал вводить таким образом. Хотелось бы конечно, чтобы еще была связь между двумя ComboBox.
Проще говоря я изначально введу, например 15 наименований в один и другой диапазон на каком нибудь листе. Его переведу в скрытый режим, чтобы он не был виден пользователем. Эти значения и будут отображаться в поле на Form.
А в случае возникновении ситуации, когда какого-то наименования не будет /// вот тут начинается проблема..... оно должно добавляться в диапазон, при закрытии (понятное дело) там сохранятся, и в дальнейшем, при повторном открытии отображаться в Combo1 или Combo2, соответственно.
В принципе кое что я уже реализовал (не совсем правильно и то что нужно, но все же...)
К сообщению приложен файл: 3854359.xlsb (17.9 Kb)
 
Ответить
СообщениеПостараюсь объяснить. На форме есть два ComboBox, в одном вводится аббревиатура организации, в другом, собственно, само наименование организации. Все это, в зависимости от выбранного значения заносится на новый лист эксель, что в последствие и печатается.
Организации, как и их аббревиатуры, повторяются, вот я и подумал вводить таким образом. Хотелось бы конечно, чтобы еще была связь между двумя ComboBox.
Проще говоря я изначально введу, например 15 наименований в один и другой диапазон на каком нибудь листе. Его переведу в скрытый режим, чтобы он не был виден пользователем. Эти значения и будут отображаться в поле на Form.
А в случае возникновении ситуации, когда какого-то наименования не будет /// вот тут начинается проблема..... оно должно добавляться в диапазон, при закрытии (понятное дело) там сохранятся, и в дальнейшем, при повторном открытии отображаться в Combo1 или Combo2, соответственно.
В принципе кое что я уже реализовал (не совсем правильно и то что нужно, но все же...)

Автор - Dмитрий
Дата добавления - 18.10.2013 в 16:35
wild_pig Дата: Пятница, 18.10.2013, 16:59 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
А как excel узнает, что уже пора сохранить новую контору?
 
Ответить
СообщениеА как excel узнает, что уже пора сохранить новую контору?

Автор - wild_pig
Дата добавления - 18.10.2013 в 16:59
KuklP Дата: Пятница, 18.10.2013, 18:05 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Постараюсь объяснить
Я тоже. Эта ветка форума не для халявы. Для распространения ЗНАНИЯ. А Вам сюда:
http://www.excelworld.ru/forum/6


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 18.10.2013, 18:13
 
Ответить
Сообщение
Постараюсь объяснить
Я тоже. Эта ветка форума не для халявы. Для распространения ЗНАНИЯ. А Вам сюда:
http://www.excelworld.ru/forum/6

Автор - KuklP
Дата добавления - 18.10.2013 в 18:05
Serge_007 Дата: Пятница, 18.10.2013, 18:07 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]
Для распространения ЗНАНИЯ
Я бы даже сказал ЗНАНИЙ :)
А то получается как "Всё для человека", а для какого именно человека - не уточняется...
[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]
Для распространения ЗНАНИЯ
Я бы даже сказал ЗНАНИЙ :)
А то получается как "Всё для человека", а для какого именно человека - не уточняется...
[/offtop]

Автор - Serge_007
Дата добавления - 18.10.2013 в 18:07
KuklP Дата: Пятница, 18.10.2013, 18:15 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[offtop]Не умничай, админ :D Все и так знают твое отношение к предмету.[/offtop]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 18.10.2013, 18:17
 
Ответить
Сообщение[offtop]Не умничай, админ :D Все и так знают твое отношение к предмету.[/offtop]

Автор - KuklP
Дата добавления - 18.10.2013 в 18:15
VovaK Дата: Четверг, 24.10.2013, 07:50 | Сообщение № 16
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Dмитрий, посмотрите здесь
http://www.planetaexcel.ru/forum....GEN_1=2
последнее решение.


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
СообщениеDмитрий, посмотрите здесь
http://www.planetaexcel.ru/forum....GEN_1=2
последнее решение.

Автор - VovaK
Дата добавления - 24.10.2013 в 07:50
Kery_888 Дата: Понедельник, 22.06.2015, 09:19 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Помогите с программой пжлст

[vba]
Код
Private Sub ComboBox1_Click()
If KeyCode = 13 Then
kol = ComboBox1.ListCount
For i = 0 To kol - 1
If ComboBox1.Text = ComboBox1.List(i) Then
MsgBox "Такая улица уже существует"
Exit For
End If
Next i
If i > kol - 1 Then
ComboBox1.AddItem ComboBox1.Text
End If
End Sub
[/vba]

Ввели данные в ComboBox1. И при нажатии Enter, то, что было введено в ComboBox1 создается новый лист с названием которое было введено в Combo Box1

[moder]1 вопрос = 1 тема!
Создавайте свою тему.
Плюс, оформление кодов и формул тегами - ОБЯЗАТЕЛЬНО![/moder]


Step

Сообщение отредактировал DJ_Marker_MC - Понедельник, 22.06.2015, 09:32
 
Ответить
СообщениеПомогите с программой пжлст

[vba]
Код
Private Sub ComboBox1_Click()
If KeyCode = 13 Then
kol = ComboBox1.ListCount
For i = 0 To kol - 1
If ComboBox1.Text = ComboBox1.List(i) Then
MsgBox "Такая улица уже существует"
Exit For
End If
Next i
If i > kol - 1 Then
ComboBox1.AddItem ComboBox1.Text
End If
End Sub
[/vba]

Ввели данные в ComboBox1. И при нажатии Enter, то, что было введено в ComboBox1 создается новый лист с названием которое было введено в Combo Box1

[moder]1 вопрос = 1 тема!
Создавайте свою тему.
Плюс, оформление кодов и формул тегами - ОБЯЗАТЕЛЬНО![/moder]

Автор - Kery_888
Дата добавления - 22.06.2015 в 09:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ComboBox, добавление и удаление строчек. (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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