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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 03:31   #1
qert
Пользователь
 
Аватар для qert
 
Регистрация: 11.11.2009
Сообщений: 20
По умолчанию VBA вопрос насчет ComboBox

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

во всех книгах на которых ссылаюсь через ComboBox1 есть лист "главная". вот с этого листа берет значение ComboBox2.

например значения ComboBox1 : 1, 2, 3
значения ComboBox2 в книге 1: a,b,c
значения ComboBox2 в книге 2: d,e,f
значения ComboBox2 в книге 3: g,h,i

если я в ComboBox1 сперва выбираю 2, то потом исправляю на 1 то в ComboBox2 будут значения d,e,f,a,b,c.

как сделать чтобы обнулялись значения ComboBox?
вот когда я меняю значение ComboBox1, ComboBox2-чтоб обновлялся. а то например если я в книге 2 и ссылаюсь на b-й лист, появится ошибка, ведь такой страницы в этой книге то нет.
Моя честь — это моя жизнь; обе растут из одного корня. Отнимите у меня честь — и моей жизни придет конец. (Шекспир)
qert вне форума Ответить с цитированием
Старый 09.12.2009, 09:22   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

qert, приложите файлик с Вашими комбобоксами, будет понятне и быстрее.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 09.12.2009, 10:23   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Перед занесением в ComboBox данных выполняйте строку
Код:
ComboBox2.Clear
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 09.12.2009, 14:21   #4
qert
Пользователь
 
Аватар для qert
 
Регистрация: 11.11.2009
Сообщений: 20
По умолчанию вот посмотрите

в диск С распакуйте. книга "Меню"
Вложения
Тип файла: rar Проект.rar (78.6 Кб, 42 просмотров)
Моя честь — это моя жизнь; обе растут из одного корня. Отнимите у меня честь — и моей жизни придет конец. (Шекспир)
qert вне форума Ответить с цитированием
Старый 09.12.2009, 14:24   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

На каких Боксах эксперементировать?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 09.12.2009 в 14:30.
The_Prist вне форума Ответить с цитированием
Старый 09.12.2009, 14:46   #6
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Можно как-то так
Код:
Private Sub ComboBox1_Change()
Dim sStr As String:sStr = ComboBox1.Text
ComboBox1.Clear
ShowDialog
If Len(sStr) = 0 Then Exit Sub
Sheets(sStr).Activate
End Sub
Хотя лично мне не очень понятно, зачем при каждом изменении в ComboBox1 вызывать процедуру ShowDialog? Если её убрать, то ComboBox1.Clear и лишняя переменная не нужны будут. Типа так
Код:
Private Sub ComboBox1_Change()
If Len(ComboBox1.Text) = 0 Then Exit Sub
Sheets(ComboBox1.Text).Activate
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 09.12.2009, 16:29   #7
qert
Пользователь
 
Аватар для qert
 
Регистрация: 11.11.2009
Сообщений: 20
По умолчанию

при нажатии кнопки вызывается форма, и сразу showdialog для первого комбобокса. а после того как выбираем комбобокс1 вызывается showdialog1 уже для второго ComboBox...ну и т.д. по цепочке.
без вызова модулей ComboBoxы же не будут работать.
Моя честь — это моя жизнь; обе растут из одного корня. Отнимите у меня честь — и моей жизни придет конец. (Шекспир)
qert вне форума Ответить с цитированием
Старый 09.12.2009, 16:32   #8
qert
Пользователь
 
Аватар для qert
 
Регистрация: 11.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Можно как-то так
Хотя лично мне не очень понятно, зачем при каждом изменении в ComboBox1 вызывать процедуру ShowDialog? Если её убрать, то ComboBox1.Clear и лишняя переменная не нужны будут. Типа так
Код:
Private Sub ComboBox1_Change()
If Len(ComboBox1.Text) = 0 Then Exit Sub
Sheets(ComboBox1.Text).Activate
End Sub
а как тогда будет работать ComboBox2? где и как будет вызываться процедура ShowDialog1?
Моя честь — это моя жизнь; обе растут из одного корня. Отнимите у меня честь — и моей жизни придет конец. (Шекспир)
qert вне форума Ответить с цитированием
Старый 09.12.2009, 16:39   #9
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от qert Посмотреть сообщение
а после того как выбираем комбобокс1 вызывается showdialog1 уже для второго ComboBox...ну и т.д.
Да? Чет я не заметил, что там для второго ComboBox процедура. У Вас там ComboBox1 везде. Вот листинг процедуры showdialog из файла ПМ
Код:
Sub ShowDialog()
Dim i As Integer
i = 2
While Worksheets("Главн").Cells(i, 1) <> ""
UserForm1.ComboBox1.AddItem Sheets("Главн").Cells(i, 1)
i = i + 1
Wend
End Sub
Где здесь ComboBox2?
Ковыряться в Ваших кодах и пяти книгах, не имея нормального представления о Вашей проблеме, желания нет.
Когда подробно объясните, что хотите, тогда и будет Вам ответ подобающий.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 09.12.2009, 16:48   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А зачем вообще каждую специальность было выносить в отдельный файл?

Можно было реализовать всё внутри одного файла:





Пример этой работы можно найти здесь
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос насчет функции sort TOLIK111 Общие вопросы C/C++ 1 06.12.2009 15:57
Важный вопрос насчет окон Windows HWork Общие вопросы C/C++ 15 15.09.2009 10:00
Вопрос насчет курсоров и печати изображения Romich Общие вопросы Delphi 10 11.06.2009 02:05
Формирование ComboBox, VBA, Excel Grusha Microsoft Office Excel 3 07.01.2009 13:29
VBA Excel ComboBox corsarlt Microsoft Office Excel 2 05.06.2008 23:50