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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2014, 18:28   #1
Thez
Пользователь
 
Регистрация: 23.02.2014
Сообщений: 27
По умолчанию Таблица соответствий в форме

Пытаюсь насиловать форму и добавить в неё настраиваемую таблицу соответствий.

На форме 2 кнопки, после нажатия на первую выбираем диапазон (A1:A22 в файле) и макрос добавляет на форму элементы управления Label. После нажатия на вторую кнопку выбираем другой диапазон (F1:F25), должно появиться такое же кол-во ListBox сколько Label, размещённые чуть правее от каждого Label, и в котором можно будет выбрать одно или несколько значений, которые берутся из диапазона.

Таким образом, выбираем к каждому Label значения ListBox, и макрос должен разместить в диапазоне D1:D22 соответствующие Label выбранные значения из ListBox.

Ход работы первой кнопки я реализовал. А как реализовать вторую кнопку не имею понятия

В файле на листе 1 исходные данные, а на листе 2, то что должен сделать макрос.

Код:
Dim x As Range, y As Range

Private Sub CommandButton1_Click()
Dim rx As Integer
Dim mx() As Object
On Error Resume Next
Set x = Application.InputBox(prompt:="Введите", Type:=8)
If x Is Nothing Then Exit Sub
CommandButton1.Caption = x.Address
rx = x.Rows.Count
ReDim mx(rx)
For i = 1 To rx
Set mx(i) = Me.Controls.add("Forms.Label.1")
        UserForm2.Height = 75 + 12 * i
        With mx(i)
                        .Height = 16
                        .Left = 10
                        .Top = 40 + 12 * i
                        .Width = 120
                        .Caption = x.Cells(i, 1).Text
        End With
Next i
End Sub

 
Private Sub CommandButton2_Click()
Dim ry As Integer, flagy As Boolean
Dim my() As Object
Dim ny As Integer: ny = 0
On Error Resume Next
Set y = Application.InputBox(prompt:="Введите", Type:=8)
If y Is Nothing Then Exit Sub
CommandButton2.Caption = y.Address
ry = y.Rows.Count
ReDim my(ry)
For i = 1 To row
j = i
    Do While (j > 1) 'чтоб в ЛистБоксе не было одинаковых значений
    j = j - 1
    If x.Cells(i, 1).Value = x.Cells(j, 1).Value Then
    flag = True
    Exit Do
    End If
    Loop
If flagy = False Then
ny = ny + 1
Set my(ny) = Me.Controls.add("Forms.ListBox.1") ' не знаю как тут использовать ListBox.add.Item (x.Cells(i,1).Text)
End If
flag = False
Next i
End Sub
Подскажите, если есть более простой способ реализовать программу.
Вложения
Тип файла: zip Книга1231.zip (19.8 Кб, 8 просмотров)
Thez вне форума Ответить с цитированием
Старый 14.03.2014, 03:27   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Проще не создавать макросом, а заранее разместить на форме ВСЕ требуемые элементы управления с необходимыми настройками и у тех, которые требуют изменения, установить свойство Visible = False, т. е. сделать невидимыми. А по нажатию кнопок (либо другим событиям) отображать те или иные.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 14.03.2014, 10:39   #3
Thez
Пользователь
 
Регистрация: 23.02.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
заранее разместить на форме ВСЕ требуемые элементы управления
Как разместить все элементы, если их кол-во зависит от кол-ва строк в диапазонах.
Thez вне форума Ответить с цитированием
Старый 14.03.2014, 11:12   #4
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Достаточно 2 комбобокса либо листбокса (или их сочетаний) и нет геморроя. Зачем руками выделять на листе диапазоны, если хочется на форме кнопки тискать?

Последний раз редактировалось kalbasiatka; 14.03.2014 в 11:16.
kalbasiatka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица соответствий ЕкатеринаKat Microsoft Office Excel 4 01.06.2013 21:33
Поиск и вывод соответствий dominci Microsoft Office Excel 6 04.03.2012 22:49
поиск соответствий в бд iforgotmynick Microsoft Office Excel 1 12.06.2011 20:38
Таблица на форме alex77755 Microsoft Office Excel 2 24.03.2010 20:51
Таблица в форме Vorron21 Microsoft Office Excel 3 04.01.2010 23:00