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

Вход

Регистрация

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

 

= Мир MS Excel/Комбобокс обновление окна ввода - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Комбобокс обновление окна ввода (Макросы/Sub)
Комбобокс обновление окна ввода
komisrenis Дата: Вторник, 28.10.2014, 18:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Подскажите пожалуиста. По заданному условия в элементе ActiveX меняется список. Код

[vba]
Код
Private Sub ComboBox1_Change()
If Лист4.Range("G1").Value = 1 Then
ComboBox1.ListFillRange = "Износ361"
End If
If Лист4.Range("G1").Value = 2 Then
ComboBox1.ListFillRange = "Износ14"
End If
End Sub
[/vba]

Но когда условие меняется список меняется не сразу, а только после того как в старом списке, что то повыбираешь. Как сделать, чтобы список сразу менялся как только сменилось условие?
[moder]Тему перенес
 
Ответить
СообщениеПодскажите пожалуиста. По заданному условия в элементе ActiveX меняется список. Код

[vba]
Код
Private Sub ComboBox1_Change()
If Лист4.Range("G1").Value = 1 Then
ComboBox1.ListFillRange = "Износ361"
End If
If Лист4.Range("G1").Value = 2 Then
ComboBox1.ListFillRange = "Износ14"
End If
End Sub
[/vba]

Но когда условие меняется список меняется не сразу, а только после того как в старом списке, что то повыбираешь. Как сделать, чтобы список сразу менялся как только сменилось условие?
[moder]Тему перенес

Автор - komisrenis
Дата добавления - 28.10.2014 в 18:07
AndreTM Дата: Вторник, 28.10.2014, 18:21 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
[vba]
Код
ComboBox1.ListIndex = -1
[/vba]
?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение[vba]
Код
ComboBox1.ListIndex = -1
[/vba]
?

Автор - AndreTM
Дата добавления - 28.10.2014 в 18:21
komisrenis Дата: Среда, 29.10.2014, 09:40 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
нет, просто пустой становиться окно выбора списка.
 
Ответить
Сообщениенет, просто пустой становиться окно выбора списка.

Автор - komisrenis
Дата добавления - 29.10.2014 в 09:40
komisrenis Дата: Среда, 29.10.2014, 10:08 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Может какойто синтаксис нужно соблюдать. Т.е. если происходит смена условий то окно обновляется и появляется новый список? Что я не умею.
 
Ответить
СообщениеМожет какойто синтаксис нужно соблюдать. Т.е. если происходит смена условий то окно обновляется и появляется новый список? Что я не умею.

Автор - komisrenis
Дата добавления - 29.10.2014 в 10:08
AndreTM Дата: Среда, 29.10.2014, 11:12 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Вы меняете список не там, где нужно.
Он ведь должен измениться, когда меняется ячейка G1?
Удалите свою процедуру.
В модуль Лист4 добавьте процедуру:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      
     If Not Intersect(Target, Лист4.Range("G1")) Is Nothing Then
      
         Select Case Target.Value
         Case 1
             ComboBox1.ListFillRange = "Износ361"
         Case 2
             ComboBox1.ListFillRange = "Износ14"
         End Select
         ComboBox1.ListIndex = -1
          
     End If
      
End Sub
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеВы меняете список не там, где нужно.
Он ведь должен измениться, когда меняется ячейка G1?
Удалите свою процедуру.
В модуль Лист4 добавьте процедуру:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      
     If Not Intersect(Target, Лист4.Range("G1")) Is Nothing Then
      
         Select Case Target.Value
         Case 1
             ComboBox1.ListFillRange = "Износ361"
         Case 2
             ComboBox1.ListFillRange = "Износ14"
         End Select
         ComboBox1.ListIndex = -1
          
     End If
      
End Sub
[/vba]

Автор - AndreTM
Дата добавления - 29.10.2014 в 11:12
komisrenis Дата: Среда, 29.10.2014, 11:33 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Теперь обновляется только после того как я щёлкну по ячейки условий (там забита формула).
 
Ответить
СообщениеТеперь обновляется только после того как я щёлкну по ячейки условий (там забита формула).

Автор - komisrenis
Дата добавления - 29.10.2014 в 11:33
AndreTM Дата: Среда, 29.10.2014, 12:13 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Теперь обновляется только...
И?
Все правильно - что просили, то и делает. О том, КАК меняется условие - у вас не было ни звука :)
Об этом вы сами можете позаботиться, разобрав код?

Вот теперь я уже согласен с Админом - два замечания вам выписали правильно. И вы упорно мчитесь к рецидиву...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Теперь обновляется только...
И?
Все правильно - что просили, то и делает. О том, КАК меняется условие - у вас не было ни звука :)
Об этом вы сами можете позаботиться, разобрав код?

Вот теперь я уже согласен с Админом - два замечания вам выписали правильно. И вы упорно мчитесь к рецидиву...

Автор - AndreTM
Дата добавления - 29.10.2014 в 12:13
komisrenis Дата: Среда, 29.10.2014, 13:31 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Нет не могу. Помоги те плз. )
Как бы я в этой области не компетентен. Мне бы на пальцах разъяснить. Т.е. у меня есть элемент "Выбор из списка". В зависимости от условий там меняются списки. Но обновляются не сразу как сменилось условие, а только после попыток выбора в старом списки. Т.е. к списку нужно обращать 2 раза, при смени условия, т.к. как там остаётся старый пока не попытаешься повыбирать. Хотелось бы чтобы при смени условия сразу менялся список, т.е. обновлялся на новый.
 
Ответить
СообщениеНет не могу. Помоги те плз. )
Как бы я в этой области не компетентен. Мне бы на пальцах разъяснить. Т.е. у меня есть элемент "Выбор из списка". В зависимости от условий там меняются списки. Но обновляются не сразу как сменилось условие, а только после попыток выбора в старом списки. Т.е. к списку нужно обращать 2 раза, при смени условия, т.к. как там остаётся старый пока не попытаешься повыбирать. Хотелось бы чтобы при смени условия сразу менялся список, т.е. обновлялся на новый.

Автор - komisrenis
Дата добавления - 29.10.2014 в 13:31
AndreTM Дата: Среда, 29.10.2014, 13:44 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
у меня есть элемент...
Правила почитайте. Файл-пример приложите.
А то уже надоело намекать, за что вы скоро третье замечание получите...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
у меня есть элемент...
Правила почитайте. Файл-пример приложите.
А то уже надоело намекать, за что вы скоро третье замечание получите...

Автор - AndreTM
Дата добавления - 29.10.2014 в 13:44
komisrenis Дата: Среда, 29.10.2014, 14:06 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Работает так: меняется условие в зависимости от даты ДТП в "Ячейки условия". Соответственно меняется список в элементе, но не сразу,а после попыток выбора значения в списке. Необходимо,что бы список менялся сразу и уже выбирвать можно было из нового списка.
К сообщению приложен файл: __.xlsm (29.0 Kb)


Сообщение отредактировал komisrenis - Среда, 29.10.2014, 14:08
 
Ответить
СообщениеРаботает так: меняется условие в зависимости от даты ДТП в "Ячейки условия". Соответственно меняется список в элементе, но не сразу,а после попыток выбора значения в списке. Необходимо,что бы список менялся сразу и уже выбирвать можно было из нового списка.

Автор - komisrenis
Дата добавления - 29.10.2014 в 14:06
RAN Дата: Среда, 29.10.2014, 15:09 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А у меня красившее
К сообщению приложен файл: 7716431.jpg (22.0 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА у меня красившее

Автор - RAN
Дата добавления - 29.10.2014 в 15:09
komisrenis Дата: Среда, 29.10.2014, 15:59 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
А у меня красившее

Это всего лишь картинка а сам шаблон расшарил бы я бы рад был ). А лучше ещё переводчиком аудетекс поделился рабочих под эксель.
 
Ответить
Сообщение
А у меня красившее

Это всего лишь картинка а сам шаблон расшарил бы я бы рад был ). А лучше ещё переводчиком аудетекс поделился рабочих под эксель.

Автор - komisrenis
Дата добавления - 29.10.2014 в 15:59
RAN Дата: Среда, 29.10.2014, 19:00 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Это не переводчик, а всего лишь скрин первой формы моего файла расчета износа. Защита от дурака. Под новую методику не адаптирован. Пользуется файлом 3 человека. Все расчеты макросом. В инет не выкладывал, и не собираюсь. Выходная форма

Форма ввода
К сообщению приложен файл: 2841280.jpg (86.9 Kb) · 2376053.jpg (92.8 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 29.10.2014, 19:06
 
Ответить
СообщениеЭто не переводчик, а всего лишь скрин первой формы моего файла расчета износа. Защита от дурака. Под новую методику не адаптирован. Пользуется файлом 3 человека. Все расчеты макросом. В инет не выкладывал, и не собираюсь. Выходная форма

Форма ввода

Автор - RAN
Дата добавления - 29.10.2014 в 19:00
komisrenis Дата: Четверг, 30.10.2014, 09:56 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Прям шедевр, только зачем? В системе расчёта ущерба куда шире расчёты нужны, а не красивая табличка с износом. У меня форма проще и работает на 2 ПП. Сейчас уже не актуально 361.
Мне бы не флуд разводить хотелось бы, а ответ получить по теме.
 
Ответить
СообщениеПрям шедевр, только зачем? В системе расчёта ущерба куда шире расчёты нужны, а не красивая табличка с износом. У меня форма проще и работает на 2 ПП. Сейчас уже не актуально 361.
Мне бы не флуд разводить хотелось бы, а ответ получить по теме.

Автор - komisrenis
Дата добавления - 30.10.2014 в 09:56
RAN Дата: Четверг, 30.10.2014, 11:54 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
формула
Код
=E5<41928

макрос
[vba]
Код
Private Sub Worksheet_Calculate()
     If [G1] Then
         If ComboBox1.ListFillRange <> "Износ361" Then
             ComboBox1.ListFillRange = "Износ361"
             ComboBox1.ListIndex = -1
         End If
     Else
         If ComboBox1.ListFillRange <> "Износ14" Then
             ComboBox1.ListFillRange = "Износ14"
             ComboBox1.ListIndex = -1
         End If
     End If

End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеформула
Код
=E5<41928

макрос
[vba]
Код
Private Sub Worksheet_Calculate()
     If [G1] Then
         If ComboBox1.ListFillRange <> "Износ361" Then
             ComboBox1.ListFillRange = "Износ361"
             ComboBox1.ListIndex = -1
         End If
     Else
         If ComboBox1.ListFillRange <> "Износ14" Then
             ComboBox1.ListFillRange = "Износ14"
             ComboBox1.ListIndex = -1
         End If
     End If

End Sub
[/vba]

Автор - RAN
Дата добавления - 30.10.2014 в 11:54
AndreTM Дата: Четверг, 30.10.2014, 13:32 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Работает так: меняется условие в зависимости от
Ну и кто вам запрещает тогда повесить контроль списка на изменение той ячейки, от которой зависит формула?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Работает так: меняется условие в зависимости от
Ну и кто вам запрещает тогда повесить контроль списка на изменение той ячейки, от которой зависит формула?

Автор - AndreTM
Дата добавления - 30.10.2014 в 13:32
komisrenis Дата: Четверг, 30.10.2014, 14:42 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AndreTM, Круть, спасибо заработало!
 
Ответить
СообщениеAndreTM, Круть, спасибо заработало!

Автор - komisrenis
Дата добавления - 30.10.2014 в 14:42
komisrenis Дата: Четверг, 30.10.2014, 17:15 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Только вот не задача. Если дату ДТП изменять, так чтобы она не меня условия, то всё равно поле со списком очищается, что естественно не нужно. Т.е. каждый раз при вводе даты ДТП нужно выбирать из списка соответствующий тип ТС, хотя список не изменился. Как бы это скорректировать.
 
Ответить
СообщениеТолько вот не задача. Если дату ДТП изменять, так чтобы она не меня условия, то всё равно поле со списком очищается, что естественно не нужно. Т.е. каждый раз при вводе даты ДТП нужно выбирать из списка соответствующий тип ТС, хотя список не изменился. Как бы это скорректировать.

Автор - komisrenis
Дата добавления - 30.10.2014 в 17:15
RAN Дата: Четверг, 30.10.2014, 17:32 | Сообщение № 19
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Я предложил решение, но вам не нравится. ;)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЯ предложил решение, но вам не нравится. ;)

Автор - RAN
Дата добавления - 30.10.2014 в 17:32
AndreTM Дата: Четверг, 30.10.2014, 17:49 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
komisrenis, ты сам-то понял собственный спич? :)
"Если сменить дату ДТП" - то это, ИМХО, другое ДТП. Т.е. другое ТС.
Для этого и сделано - заставим пользователя "принудительно" выбрать правильный тип.
Если не надо "сбрасывать" имеющийся список - закомментируй в коде строчку с .ListIndex, чтобы она не исполнялась, именно в ней и происходит сброс выбранного "до этого" значения в списке.
[offtop]P.S. Я же просил самому разобраться с кодом :)[/offtop]


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщениеkomisrenis, ты сам-то понял собственный спич? :)
"Если сменить дату ДТП" - то это, ИМХО, другое ДТП. Т.е. другое ТС.
Для этого и сделано - заставим пользователя "принудительно" выбрать правильный тип.
Если не надо "сбрасывать" имеющийся список - закомментируй в коде строчку с .ListIndex, чтобы она не исполнялась, именно в ней и происходит сброс выбранного "до этого" значения в списке.
[offtop]P.S. Я же просил самому разобраться с кодом :)[/offtop]

Автор - AndreTM
Дата добавления - 30.10.2014 в 17:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Комбобокс обновление окна ввода (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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