Использование программно созданных кнопок - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день. Есть кнопка которая считает кол-во заполненных строк на листе и создает такое же количество кнопок на форме с беря название с этих же ячеек. Вопрос в чем: как их дальше использовать? Каждая кнопка обозначает подразделение и хотелось бы по клику что бы открывалась другая форма соответствующая подразделению. Пробывал ссылаться по названию создаваемой кнопки, не получилось.
Заранее спасибо за помощь) т.к. всегда находится кто-то не равнодушный. P.S. Знаю код простоват и многие найдут кучу более изящных решений. P.S.S. X добавлен для создание кнопок под другой тип подразделений в другом столбце, просто еще не задействовал.

Решение задачи: «Использование программно созданных кнопок»

textual
Листинг программы
Private Sub CommandButton1_Click()
Dim t As Integer
    Dim r As Integer, k As Integer, i As Range, c As Integer
        Dim newctrl As Control, z As Integer, x As Integer, y As Integer, h As Integer
Sheets("liti").Select
    If OptionButton1.Value = True Then t = 1 Else
    If OptionButton2.Value = True Then t = 2 Else
    If OptionButton3.Value = True Then t = 3
        r = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
        k = 0
        For Each i In Range(Cells(2, t), Cells(r, t))
            If i.Value <> "" Then k = k + 1
            Next i
    z = 0
    x = 50
    y = 150
    h = 2
        Do Until k = z
            Set newctrl = Controls.Add("forms.commandbutton.1", Button)
                newctrl.Left = x
                newctrl.Top = y
                newctrl.Width = 100
                newctrl.Caption = Cells(h, t)
                    z = z + 1
                    y = y + 50
                    h = h + 1
        Loop
    
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5