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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 17:15   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Из модуля кода листа уберите макрос Private Sub Worksheet_Activate()

В модуль формы (туда, где код НоваяЯчейка = ComboBox1.Value)
добавьте этот код:

Код:
Private Sub UserForm_Initialize()
    '    UserForm1.ComboBox1.Clear
    '    UserForm1.ComboBox2.Clear
    With Sheets("Штатное расписание")
        For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
            UserForm1.ComboBox1.AddItem .Cells(i, 1)
        Next
        ' можно  обойтись и без этого
        '        For i = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
        '            UserForm1.ComboBox2.AddItem .Cells(i, 3)
        '        Next
    End With
End Sub

Private Sub ComboBox1_Change()
    On Error Resume Next
    Me.ComboBox2 = Sheets("Штатное расписание").Columns(1).Find(Me.ComboBox1, , , xlWhole).Next.Next
End Sub
Теперь при выборе должности в соответствующем поле автоматически будет подставляться количество свободных ставок.
EducatedFool вне форума Ответить с цитированием
Старый 12.05.2009, 17:45   #12
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию

а чтобы остальные поля из формы тоже заполнились в таблицу
нужно этот код изменить:
Private Sub CommandButton1_Click()

If ComboBox1.Text = "" And ComboBox2.Text = "" Then MsgBox "Заполните все поля!", vbExclamation: Exit Sub
Dim НоваяЯчейка As Range: Set НоваяЯчейка = Cells(65000, 2).End(xlUp).Offset(1)
НоваяЯчейка = ComboBox1.Value
НоваяЯчейка.Next = ComboBox2.Value

я думаю, что это нужно сделать добавив следующую строку :
Sheets("Физические лица").Cells(i, 1) = TextBox1.Text
Sheets("Физические лица").Cells(i, 4) = TextBox2.Text
и.т.д.
почему-то ничего не получается
sttafi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в Combobox убрать список? Alexi Компоненты Delphi 10 04.01.2011 08:25
открываю документ. ввожу дату и другие данные, как сделать чтобы на другой странице велась статистика по Аленка Microsoft Office Excel 5 12.02.2008 17:36
Как сделать разрыв страницы печати по условию и узнать номер страницы Leanna Microsoft Office Excel 2 21.01.2008 06:59
Как сделать, чтобы один элемент списка в ComboBox писался в несколько строк? Andr Общие вопросы Delphi 5 15.08.2007 22:24