Динамически создаваемый Combobox

Программирование на Visual Basic for Applications
asafr
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 06.02.2003 (Чт) 13:34
Откуда: Russia,

Динамически создаваемый Combobox

Сообщение asafr » 06.11.2009 (Пт) 13:13

Здравствуйте, уважаемые программисты.
У меня по Excel VBA возникла следующая проблема.
На странице Excel в определенных ячейках введен небольшой список действий оператора, что-то, вроде "Да", "Нет", "Необязательно", "Обязательно".
Список этот должен отображаться в combobox, и выбраннное значение Combobox.Item должно отображаться в определенной ячейке, что, собственно не трудно: свойства ListFillRange и LinkedCell никто не отменял.
Но проблема немного сложнее. Не вдаваясь в подробности скажу, что в Excel автоматически формируется отчет из сторонней программы. Количество строк отчета неизвестно, но известно, что в каждой строке отчета в определенной колонке должен появляться Combobox со списком "Да", "Нет", "Необязательно", "Обязательно" и LinkedCell каждого комбобокса изменяется только индексом строки, то есть в зависимости от строки отчета. Например на первой строке Combobox.LinkedCell = "A1", на второй "A2", на третьей "A3" и так далее до окончания формирования отчета. Как это сделать в VBA?
В упрощенном варианте вопрос можно озвучить так: динамически создать на странице Excel построчно в одной колонке несколько независимых друг от друга combobox-ов, заполненных значениями из ячеек "Z1:Z4", и LinkedCell = "A" + <номер строки> ?
И вот с эти у меня проблема. Очень прошу помочь.
Заранее всем спасибо!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Динамически создаваемый Combobox

Сообщение alibek » 06.11.2009 (Пт) 14:04

Про какой Combobox речь?
Про элемент формы или про выпадающий список, указываемый в "Проверка данных"?
Lasciate ogni speranza, voi ch'entrate.

asafr
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 06.02.2003 (Чт) 13:34
Откуда: Russia,

Re: Динамически создаваемый Combobox

Сообщение asafr » 06.11.2009 (Пт) 14:16

alibek писал(а):Про какой Combobox речь?
Про элемент формы или про выпадающий список, указываемый в "Проверка данных"?


Про комбобокс, который, можно поместить в ячейку рабочего листа Excel. Я говорю НЕ о Комбобокс на форме...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Динамически создаваемый Combobox

Сообщение alibek » 06.11.2009 (Пт) 14:34

Я не говорю про Combobox на форме.
Я говорю про элемент формы Combobox (Excel.ControlFormat) или Combobox проверки данных (Excel.Validation).
Lasciate ogni speranza, voi ch'entrate.

asafr
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 06.02.2003 (Чт) 13:34
Откуда: Russia,

Re: Динамически создаваемый Combobox

Сообщение asafr » 06.11.2009 (Пт) 14:54

alibek писал(а):Я не говорю про Combobox на форме.
Я говорю про элемент формы Combobox (Excel.ControlFormat) или Combobox проверки данных (Excel.Validation).


Сombobox, как элемент формы

asafr
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 06.02.2003 (Чт) 13:34
Откуда: Russia,

Re: Динамически создаваемый Combobox

Сообщение asafr » 06.11.2009 (Пт) 15:53

asafr писал(а):
alibek писал(а):Я не говорю про Combobox на форме.
Я говорю про элемент формы Combobox (Excel.ControlFormat) или Combobox проверки данных (Excel.Validation).


Сombobox, как элемент формы


Хотя, ладно... Глупо делать танк, когда достаточна маленькая повозка... Сombobox, как элемент формы очень нерационально для моего случая... Из-за своей неосведомленности имел смутное представление о Excel.Validation, но мне это подходит - да и в макросе его создать легко...
Только, вот, шрифт списка у меня мелкий какой-то :)
Увеличить его можно?
Спасибо за напоминание о Excel.Validation, alibek ...

19-11
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 04.01.2010 (Пн) 9:26

Re: Динамически создаваемый Combobox

Сообщение 19-11 » 04.01.2010 (Пн) 9:42

помогите люди добрые!!!! с vba только начинаю знакомство
проблема с combobox
не получается запихнуть в него список
всякое пробовал. ноль реакции
скинте пожалуйста екселевский пример комбобокса(желательно попроще).

alex77755
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 97
Зарегистрирован: 24.03.2009 (Вт) 11:40

Re: Динамически создаваемый Combobox

Сообщение alex77755 » 16.01.2010 (Сб) 6:11

попробуй такой вариант(с комбобоксом из форм)
Код: Выделить всё
Dim i
Private Sub CommandButton1_Click()
Dim sd As Object
Dim T, H
i = i + 1
T = Range("A" & i).Top
H = Range("A" & i).Height
ActiveSheet.DropDowns.Add(50, T, 200, H).Select
Set sd = Selection
sd.LinkedCell = "A" & i
sd.ListFillRange = "H1:H4"
sd.ListIndex = 1       
End Sub

alex77755
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 97
Зарегистрирован: 24.03.2009 (Вт) 11:40

Re: Динамически создаваемый Combobox

Сообщение alex77755 » 16.01.2010 (Сб) 6:27

Наверное не пойдёт.
В LinkedCell заносит, почему-то не выбранное значение, а только его индекс.
Может что в свойствах ещё надо подкрутить


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList