Разработка диалоговых окон в Excel, часть 5. Выпадающие списки ComboBox

Поділитися
Вставка
  • Опубліковано 1 жов 2024
  • Сегодня в нашем видеоуроке мы будем учиться создавать в диалоговом окне выпадающие списки ComboBox. Для этого нам придется решить ряд задач: рассмотреть методы формирования элементов списка; выбор элемента списка по умолчанию; считывание выбранного пользователем элемента списка и замену одних элементов списка на другие в процессе работы формы

КОМЕНТАРІ • 17

  • @ga-mi6
    @ga-mi6 3 роки тому +1

    Не получается записать в роусоурс данные

  • @zohrabkazimov2393
    @zohrabkazimov2393 6 років тому +1

    Преогромно благодарен за внятное и четкое объяснение! Если возможность будет, покажите исполнения примеров в нескольких вариантах.Например: с использованием функции "İF"; а также с помощью "Саse" и т.п. В любом случае, не смотря что я самоуч, но признаюсь-урок очень понятен.Спасибо!

    • @StudyProf
      @StudyProf  6 років тому

      Спасибо за отзыв. Я так понимаю, ваше пожелание относилось не именно к данному видеоуроку, а в целом

  • @КуанышСергазин-ч9ь
    @КуанышСергазин-ч9ь 6 років тому +1

    MsgBox("Сегодня" 4 UserForm1.ComboBox1.Value 4 " " 4 UserForm1.ComboBox2.Value 4 " " 4 UserForm1.ComboBox3.Value ) -это команда не реализуется. Что это за 4? Изменил таким образом: MsgBox (UserForm1.ComboBox1.Value + UserForm1.ComboBox2.Value + UserForm1.ComboBox3.Value). Так сообщение показывает.

    • @StudyProf
      @StudyProf  6 років тому

      Здравствуйте. Команда выглядит иначе, чем вы написали. В примере используется:
      MsgBox ("Сегодня " & UserForm1.ComboBox1.Value & " " & UserForm1.ComboBox2.Value & " " & UserForm1.ComboBox3.Value)
      То есть, для объединения текстовых строк применяется символ амперсанда "&"

    • @КуанышСергазин-ч9ь
      @КуанышСергазин-ч9ь 6 років тому

      Спасибо. Исправил.

  • @kseniiashtein2685
    @kseniiashtein2685 6 років тому

    Добрый день.
    Большое спасибо за подробное видео.
    Очень помогло.
    Но есть вопросы:
    1. Как правильно прописать RowSource, если данные находятся в другом файле?
    2. Как вывести выбранное значение в конкретную ячейку?

  • @user-ej9wt4su4d
    @user-ej9wt4su4d 2 роки тому

    Добрый день! Можно ли в combobox добавить данные из массива ячеек, количество ячеек в массиве высчитывается в другой функции

    • @lalaroo104
      @lalaroo104 2 роки тому

      aProd = Range("Продукт") 'в массив aProd забираем значения из ранее поименованного диапазона "Продукт"
      'циклом добавляем значения массива в комбобокс
      For i = 1 To UBound(aProd)
      UserForm1.ComboBox1.AddItem aProd(i, 1)
      Next

    • @user-ej9wt4su4d
      @user-ej9wt4su4d 2 роки тому

      @@lalaroo104 Благодарю Вас!!!

  • @Hovik46
    @Hovik46 8 років тому

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

    • @StudyProf
      @StudyProf  8 років тому

      +Hovik Ghambaryan Здравствуйте. Я не совсем понял ваш вопрос

  • @ДмитрийПчелинцев-м5н

    Добрый день! Спасибо за урок! Как можно сделать так, чтобы в каждом месяце было правильное число дней, соответственно году?

    • @StudyProf
      @StudyProf  8 років тому +1

      +Дмитрий Пчелинцев В этом случае список, который соответствует дням месяца, нужно заполнять не в момент активации формы, а когда пользователь выбирает месяц из второго списка. То есть, "привязать" формирование списка с днями месяца к событию выбора месяца из второго списка. Выбрав месяц, вы выполняете проверку с целью определить количество дней в нем, а затем заполняем программно первый список нужным количеством дней.

    • @SK-rf4fy
      @SK-rf4fy 5 років тому

      Можно например так
      Private Sub ComboBox2_Change()
      Dim s As String
      If (ComboBox2.Value = ComboBox2.List(3)) Or (ComboBox2.Value = ComboBox2.List(5)) _
      Or (ComboBox2.Value = ComboBox2.List(8)) Or (ComboBox2.Value = ComboBox2.List(10)) Then
      If ComboBox1.Value = 31 Then ComboBox1.Value = 30
      s = "Лист1!A1:A30"
      ComboBox1.RowSource = s
      ElseIf ComboBox2.Value = ComboBox2.List(1) Then
      If (ComboBox3.Value Mod 4) = 0 Then
      If ComboBox1.Value > 29 Then ComboBox1.Value = 29
      s = "Лист1!A1:A29"
      ComboBox1.RowSource = s
      Else
      If ComboBox1.Value > 28 Then ComboBox1.Value = 28
      s = "Лист1!A1:A28"
      ComboBox1.RowSource = s
      End If
      Else
      s = "Лист1!A1:A31"
      ComboBox1.RowSource = s
      End If
      End Sub
      Private Sub ComboBox3_Change()
      Dim s As String
      If ComboBox2.Value = ComboBox2.List(1) Then
      If (ComboBox3.Value Mod 4) = 0 Then
      If ComboBox1.Value > 29 Then ComboBox1.Value = 29
      s = "Лист1!A1:A29"
      ComboBox1.RowSource = s
      Else
      If ComboBox1.Value > 28 Then ComboBox1.Value = 28
      s = "Лист1!A1:A28"
      ComboBox1.RowSource = s
      End If
      End If
      End Sub

  • @Ufos_4MGT
    @Ufos_4MGT 4 роки тому

    А есть какой-то способ сделать выпадающий список разноцветным? Допустим Январь, Февраль (красного цвета) Март, Апрель (Синего цвета) и так далее..

    • @StudyProf
      @StudyProf  4 роки тому +1

      Здравствуйте. Именно в выпадающем списке такой возможности нет