Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VBA связь элементов формы с таблицей

83K
14 июня 2012 года
blackovskiy
1 / / 14.06.2012
Доброго времени суток!
Помогите плз есть книга, которая должна заполняться и редактироваться с формы. В форме есть 2 ComboBox, первый отвечает за переключение листов книги
Private Sub ComboBox1_Change()
Sheets(ComboBox1.ListIndex + 1).Select
End Sub

Private Sub UserForm_Initialize()
Dim n As Long
n = Sheets.Count
For i = 1 To n
ComboBox1.AddItem Sheets(i).Name
Next

Второй дает выбор. Данные "_" должны подставляться в столбец "В" на выбранном листе.


ComboBox2.AddItem "3-ий экипаж"
ComboBox2.AddItem "4-ый экипаж"
ComboBox2.AddItem "5-ый экипаж"
ComboBox2.AddItem "6-ой экипаж"
ComboBox2.AddItem "7-ой экипаж"
ComboBox2.AddItem "8-ой экипаж"
End Sub
Проблема такова: 1) как увязать выбор из ComboBox2 с первой пустой ячейкой столбца "В"
2) создать условие, что если в столбце "С" например до этого уже было какое либо значение (С1 кпримеру или С1:С(х), где х любой) то результат из формы с ComboBox2 записывался в столбец "В" строку (х)+1.
275
23 июня 2012 года
pashulka
985 / / 19.09.2004
Если я правильно понял поставленную задачу, то :

Код:
Private Sub UserForm_Initialize()
    Dim iList As Worksheet
    For Each iList In ThisWorkbook.Worksheets
        ComboBox1.AddItem iList.Name
    Next
    ComboBox1.ListIndex = 0
    ComboBox1.Style = fmStyleDropDownList 'можно изменить также и вручную
   
    ComboBox2.List = Array("3-ий экипаж", "4-ый экипаж", "5-ый экипаж", "6-ой экипаж", "7-ой экипаж", "8-ой экипаж")
End Sub

'Private Sub ComboBox1_Change()
'    Worksheets(ComboBox1.ListIndex + 1).Activate
'End Sub

Private Sub ComboBox2_Change() 'Событие используется для примера
    With ThisWorkbook.Worksheets(ComboBox1.ListIndex + 1)
         Dim iCell As Range
         Set iCell = .Columns("B:C").Find("*", , xlFormulas, , xlByRows, xlPrevious)
         If Not iCell Is Nothing Then
            .Cells(iCell.Row + 1, 2) = ComboBox2.Value
         Else
            .Cells(1, 2) = ComboBox2.Value
         End If
    End With
End Sub
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог