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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2020, 05:57   #1
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию Работает только последний "If-Then-Else"

Здравствуйте. Написал код, который выглядит примерно так:
если ComboBox23.Text="Шкаф" То "данные-1 для элементов управления" иначе "данные-2 элементов управления";
если ComboBox23.Text="Стол" То "данные-3 для элементов управления" иначе "данные-4 элементов управления";
Выполняется только последний блок кода. Как сделать, чтобы выполнялись все "If-Then-Else", тем более, что их планируется больше десятка?

Код:
Public Sub ComboBox23_Change()
    Dim strSystemType As String
    Dim МодулиPath As String
    Dim strFullFilePath As String
    МодулиPath = ThisWorkbook.Path & "\Модули\"
    strSystemType = UserForm1.ComboBox23.Text
    strFullFilePath = МодулиPath & Application.PathSeparator & strSystemType & ".jpg"
     If IsExists(strFullFilePath) Then
        Image5.Picture = LoadPicture(strFullFilePath)
     End If
 
 Sheets("Расчёт").Range("E3") = ComboBox23.Text
 
    If (ComboBox23.Text = Sheets("Справочник").Range("F2")) Or (ComboBox23.Text = Sheets("Справочник").Range("F3")) Or (ComboBox23.Text = Sheets("Справочник").Range("F4")) Then
    Frame9.Visible = False
    Image3.Visible = False
    Image11.Visible = False
    Frame2.Left = 0
    Frame2.Width = 570
    Sheets("Расчёт").Range("E20") = ""
    ComboBox15.Visible = False
    ComboBox4.Visible = False
    ComboBox30.Visible = False
    ComboBox29.Visible = False
    ComboBox31.Visible = False
    Label139.Visible = False
    Label140.Visible = False
    Label144.Visible = False
    Label147.Visible = False
    Label148.Visible = False
    Label149.Visible = False
      Else
    Frame9.Visible = True
    Image3.Visible = True
    Image11.Visible = True
    Frame2.Left = 144
    Frame2.Width = 426
    ComboBox15.Visible = True
    ComboBox4.Visible = True
    ComboBox30.Visible = True
    ComboBox29.Visible = True
    ComboBox31.Visible = True
    Label139.Visible = True
    Label140.Visible = True
    Label144.Visible = True
    Label147.Visible = True
    Label148.Visible = True
    Label149.Visible = True
  End If
   If ComboBox23.Text = Sheets("Справочник").Range("F5") Then
   Frame9.Visible = False
   Image3.Visible = False
   Image11.Visible = False
   Frame2.Left = 0
   Frame2.Width = 570
   Sheets("Расчёт").Range("E20") = ""
   ComboBox18.RowSource = "Количество1"
   ComboBox2.RowSource = "Открывание_вбок"
   ComboBox15.Visible = False
   ComboBox4.Visible = False
   ComboBox30.Visible = False
   ComboBox29.Visible = False
   ComboBox31.Visible = False
   Label139.Visible = False
   Label140.Visible = False
   Label144.Visible = False
   Label147.Visible = False
   Label148.Visible = False
   Label149.Visible = False
     Else
   Frame9.Visible = True
   Image3.Visible = True
   Image11.Visible = True
   Frame2.Left = 144
   Frame2.Width = 426
   ComboBox18.RowSource = "Количество"
   ComboBox2.RowSource = "Открывание_фасада"
   ComboBox15.Visible = True
   ComboBox4.Visible = True
   ComboBox30.Visible = True
   ComboBox29.Visible = True
   ComboBox31.Visible = True
   Label139.Visible = True
   Label140.Visible = True
   Label144.Visible = True
   Label147.Visible = True
   Label148.Visible = True
   Label149.Visible = True
     End If
    End Sub
Надеюсь на помощь. Спасибо
Вадим12091965 вне форума Ответить с цитированием
Старый 17.06.2020, 08:20   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Значит выполнилось 2ое условие
Код:
ComboBox23.Text = Sheets("Справочник").Range("F5")
В трассировке / отладочной информации что видели, должен 1ый блок сработать?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.06.2020, 09:33   #3
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Александр, извините, что не отписался сразу - мне ответили в Планете. Сделал Elseif и всё получилось. Спасибо, что откликнулись
Вадим12091965 вне форума Ответить с цитированием
Старый 17.06.2020, 17:26   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А чего сразу не написали что мультипост есть, я бы не писал ничего?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В модуле "uses" не работает "cpwin" когда провожу компиляцию (работает в программе Geany) выдает ошибку. Maksim84984 Помощь студентам 0 11.11.2018 20:28
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Импорт "порционно" работает только для 1го раза Человек_Борща Microsoft Office Access 1 18.06.2013 02:41
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03