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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 12:46   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Увеличить длинну выпадающего списка больше 8 строк

Увеличить длинну выпадающего списка больше 8 строк можно, но не работает копировать ячейку-вставить. Как это исправить?
Вложения
Тип файла: rar Книга1.rar (10.3 Кб, 122 просмотров)
agregator вне форума Ответить с цитированием
Старый 27.05.2009, 14:31   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Этот пример я делал лишь в целях демонстрации, поэтому там много что не работает.

Чтобы были доступны функции копировать - вставить, надо немного изменить макрос (см. вложение)

Теперь выпадающий список отображается при двойном щелчке в желтых ячейках.
Вложения
Тип файла: rar Большой выпадающий список по DoubleClick.rar (10.5 Кб, 325 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 22.09.2009, 05:13   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Как сделать, чтобы данные выпадающего списка брались из другой, неоткрытой книги Excel?

Последний раз редактировалось agregator; 22.09.2009 в 14:10.
agregator вне форума Ответить с цитированием
Старый 24.09.2009, 07:45   #4
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Например так. Вносим в рабочую книгу, потом удаляем.
Const ValidationList = "N1:N10"
Public Events As Boolean
Private Sub ComboBox1_Change()
If Not Events Then Exit Sub
ActiveCell.Value = Me.ComboBox1.Value
HideCombo
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [b4:e6]) Is Nothing Or Target.Cells.Count > 1 Then HideCombo: Exit Sub
Cancel = True: Events = False
Me.ComboBox1.Top = Target.Top: Me.ComboBox1.Left = Target.Left
Me.ComboBox1.Width = Target.Width + 16: Me.ComboBox1.Height = Target.Height
FillCombo
Events = True
End Sub
Sub FillCombo()
Me.ComboBox1.Clear
Dim Path, File, List As String
Path = "C:\Папка с файлом\" 'Путь к папке с Вашим файлом
File = "Товары.xls" 'имя файла
List = "Список" ' Имя листа
Range("N1:N10").Formula = "='" & Path & "[" & File & "]" & List & "'!" & "A1"
Range("N1:N10") = Range("N1:N10").Value
For Each cell In Range("N1:N10").Cells
Me.ComboBox1.AddItem cell
Next
Me.ComboBox1.ListRows = Range("N1:N10").Cells.Count
Me.ComboBox1.Value = ActiveCell.Value: Me.ComboBox1.Font.Size = 6
Range("N1:N10").ClearContents
End Sub
Sub HideCombo()
Me.ComboBox1.Top = 0: Me.ComboBox1.Left = 0: Me.ComboBox1.Width = 0: Me.ComboBox1.Height = 0
End Sub
Как сделать, чтобы данные выпадающего списка брались из другой, неоткрытой книги Excel и не вносились в рабочую книгу, а брались из памяти?

Последний раз редактировалось agregator; 24.09.2009 в 10:54.
agregator вне форума Ответить с цитированием
Старый 17.12.2009, 02:27   #5
ser_zorg
Новичок
Джуниор
 
Регистрация: 16.12.2009
Сообщений: 1
Хорошо

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Этот пример я делал лишь в целях демонстрации, поэтому там много что не работает.

Чтобы были доступны функции копировать - вставить, надо немного изменить макрос (см. вложение)

Теперь выпадающий список отображается при двойном щелчке в желтых ячейках.
Практически идеально, только ещё бы добавить возможность прокрутки!
ser_zorg вне форума Ответить с цитированием
Старый 17.12.2009, 03:11   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от ser_zorg Посмотреть сообщение
Практически идеально, только ещё бы добавить возможность прокрутки!
С прокруткой сделать сложно, но теоретически можно.

Проще даже, пожалуй, будет вывести выпадающий список в несколько столбцов.
Но я это реализовывать не буду - нет ни времени, ни желания.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как увеличить длинну выпадающего списка: ДАННЫЕ-ПРОВЕРКА-СПИСОК kay Microsoft Office Excel 3 10.02.2009 12:59
C#. Как получить значение выпадающего списка? monach79 Общие вопросы .NET 1 18.12.2008 14:29
Прокрутка выпадающего списка SAndrus Microsoft Office Excel 2 16.06.2007 17:52
Ширина выпадающего списка Python Microsoft Office Excel 8 11.03.2007 06:31