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

Вход

Регистрация

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

 

= Мир MS Excel/выполнения формы по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнения формы по условию (Макросы/Sub)
выполнения формы по условию
Serg73 Дата: Суббота, 18.11.2017, 08:00 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Всем привет, подскажите как прописать ниже указанный код более компактно
Есть Userform в которой есть:
ComboBox1 - по условию которого лист открывает или скрывает определенные строки.
ToggleButton - если нажато два и более ToggleButton то выдает ошибку и должен оставлять UserForm без закрытия для повторного ввода/корректировки и если нажат только один ToggleButton то необходимо открыть соответствующий лист excel.
Загвоздка заключается в том что когда выбрано два и более ToggleButton выдается ошибка, но все равно происходит переключение на какой либо лист

[vba]
Код
Private Sub CommandButton1_Click()
If UserForm1.ComboBox1.Value = 1 Then
Columns("J:CV").Select
Selection.EntireColumn.Hidden = True
Columns("A:I").Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 2 Then
Union(Columns("G:I"), Columns("M:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("J:L"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 3 Then
Union(Columns("G:L"), Columns("P:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("M:O"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 4 Then
Union(Columns("G:O"), Columns("S:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("P:R"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
..........

If UserForm1.ToggleButton1 And UserForm1.ToggleButton3 Or UserForm1.ToggleButton3 And UserForm1.ToggleButton4 Or UserForm1.ToggleButton1 And UserForm1.ToggleButton4 Or UserForm1.ToggleButton3 And UserForm1.ToggleButton1 And UserForm1.ToggleButton4.Value = True Then
MsgBox "Ошибка - выберите только одну смену"
End If

If UserForm1.ToggleButton1.Value = True Then
Sheets("OEE - Брак_1_смена").Select
End If

If UserForm1.ToggleButton3.Value = True Then
Sheets("OEE - Брак_2_смена").Select
End If

If UserForm1.ToggleButton4.Value = True Then
Sheets("OEE - Брак_3_смена").Select
End If
USerForm1.Hide
End Sub
[/vba]
К сообщению приложен файл: 4081535.xlsx (38.6 Kb)


Сообщение отредактировал Manyasha - Воскресенье, 11.03.2018, 13:35
 
Ответить
СообщениеВсем привет, подскажите как прописать ниже указанный код более компактно
Есть Userform в которой есть:
ComboBox1 - по условию которого лист открывает или скрывает определенные строки.
ToggleButton - если нажато два и более ToggleButton то выдает ошибку и должен оставлять UserForm без закрытия для повторного ввода/корректировки и если нажат только один ToggleButton то необходимо открыть соответствующий лист excel.
Загвоздка заключается в том что когда выбрано два и более ToggleButton выдается ошибка, но все равно происходит переключение на какой либо лист

[vba]
Код
Private Sub CommandButton1_Click()
If UserForm1.ComboBox1.Value = 1 Then
Columns("J:CV").Select
Selection.EntireColumn.Hidden = True
Columns("A:I").Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 2 Then
Union(Columns("G:I"), Columns("M:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("J:L"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 3 Then
Union(Columns("G:L"), Columns("P:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("M:O"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
'''''
If UserForm1.ComboBox1.Value = 4 Then
Union(Columns("G:O"), Columns("S:CV")).Select
Selection.EntireColumn.Hidden = True
'
Union(Columns("P:R"), Columns("A:F")).Select
Selection.EntireColumn.Hidden = False
End If
..........

If UserForm1.ToggleButton1 And UserForm1.ToggleButton3 Or UserForm1.ToggleButton3 And UserForm1.ToggleButton4 Or UserForm1.ToggleButton1 And UserForm1.ToggleButton4 Or UserForm1.ToggleButton3 And UserForm1.ToggleButton1 And UserForm1.ToggleButton4.Value = True Then
MsgBox "Ошибка - выберите только одну смену"
End If

If UserForm1.ToggleButton1.Value = True Then
Sheets("OEE - Брак_1_смена").Select
End If

If UserForm1.ToggleButton3.Value = True Then
Sheets("OEE - Брак_2_смена").Select
End If

If UserForm1.ToggleButton4.Value = True Then
Sheets("OEE - Брак_3_смена").Select
End If
USerForm1.Hide
End Sub
[/vba]

Автор - Serg73
Дата добавления - 18.11.2017 в 08:00
китин Дата: Суббота, 18.11.2017, 08:38 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение Как оформлять сообщения?

Автор - китин
Дата добавления - 18.11.2017 в 08:38
parovoznik Дата: Суббота, 18.11.2017, 10:01 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Serg73,файл нужно приложить рабочий,а не картинку.
Выбор дат производить по календарю. Приложите файл и оформите согласно правил форума.Жесть.!!! :'(
 
Ответить
СообщениеSerg73,файл нужно приложить рабочий,а не картинку.
Выбор дат производить по календарю. Приложите файл и оформите согласно правил форума.Жесть.!!! :'(

Автор - parovoznik
Дата добавления - 18.11.2017 в 10:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнения формы по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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