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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 02:09   #1
Rise13
Новичок
Джуниор
 
Регистрация: 09.12.2011
Сообщений: 1
По умолчанию Икак правильно заменить в ComboBox Change на MouseDown

На первом листе у нас расположены столбцы с фамилиями, именами и отчествами, а в столбце пол нужно сделать поле со списком чтобы выбирать пол.

Изменить Change на MouseDown
Когда меняю и выбираю в поле другой пол, Эксель вылетает.как правильно MouseDown сделать?

ThisWorkbook –

'Модуль ThisWorkbook
Private Sub Workbook_Open()
'загружаем список
Worksheets("Сотрудники").ComboBox1. Clear
Worksheets("Сотрудники").ComboBox1. AddItem _
Worksheets("Пол").Cells(2, 1).Text
Worksheets("Сотрудники").ComboBox1. AddItem _
Worksheets("Пол").Cells(3, 1).Text
End Sub

Лист1(Сотрудники) –
'Лист с именем "Сотрудники"
Dim Y As Long

Private Sub ComboBox1_Change()
If ComboBox1.Visible = False Or Y = 0 Or ComboBox1.Text = "" Then
Exit Sub
End If
If ComboBox1.Text = Worksheets("Пол").Cells(2, 1).Text Then
Cells(Y, 4).Value = "=Пол!$A$2"
Else
Cells(Y, 4).Value = "=Пол!$A$3"
End If
ComboBox1.Text = ""
Cells(Y, 4).Select
End Sub


Private Sub Worksheet_Activate()
ComboBox1.Visible = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'устанавливаем окно со списком на текущую строку
With Target
Y = .Row
ComboBox1.Visible = False
ComboBox1.Width = 15
If .Column = 4 Then
ComboBox1.Left = Cells(Y, 4).Left - ComboBox1.Width
Else
ComboBox1.Left = Cells(Y, 4).Left
End If
ComboBox1.Top = Cells(Y, 4).Top
ComboBox1.Height = Cells(Y, 4).Height
End With
ComboBox1.Visible = True
End Sub

Лист2(Пол) –
'Лист с именем "Пол"

Private Sub Worksheet_Activate()
Worksheets("Сотрудники").ComboBox1. Visible = False
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'загружаем список
Worksheets("Сотрудники").ComboBox1. Clear
Worksheets("Сотрудники").ComboBox1. AddItem Cells(2, 1).Text
Worksheets("Сотрудники").ComboBox1. AddItem Cells(3, 1).Text
End Sub
Rise13 вне форума Ответить с цитированием
Старый 09.12.2011, 14:31   #2
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

а у вас интересно сделано - элементы комбо выбора пола берутся из ячеек..

типа в любой момент вместо обычных жен и муж можно свои подставить..
slan вне форума Ответить с цитированием
Старый 09.12.2011, 14:35   #3
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

ps приложили бы файл что ли..
slan вне форума Ответить с цитированием
Старый 09.12.2011, 14:36   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

отметьте столбец ПОЛ, проверка данных, список, впишите муж.;жен., жмите Ok. проверяйте.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно заменить строку WennY Общие вопросы Delphi 5 05.09.2011 09:16
TWebBrowser блокировка MouseDown Crystallon Общие вопросы Delphi 2 30.04.2011 02:25
Описать процедуру change (x, y, z) qwerty777 Паскаль, Turbo Pascal, PascalABC.NET 2 30.05.2010 22:50
Как правильно использовать ComboBox Pirotexnik Общие вопросы Delphi 6 26.03.2009 23:30
MouseDown: обращение к правой кнопке мыши ZhekON Общие вопросы Delphi 2 11.05.2007 19:17