Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как создать два списка выбора - основной и условный / 7 сообщений из 7, страница 1 из 1
26.01.2006, 13:40:22
    #33504984
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Как создать два списка выбора - основной и условный.
Например на Лист2 в столбцеА занесены скажем Фамилии Сотрудников в столбцеВ скажем Отделы .
Как сделать что б на Листе№1 в столбцеВ появлялся вариантый список по примеру Данные-Проверка-Тип данных:Список со значениями из столбцаВ Листа№2 (Названия отделов) сгрупироваными без повторений (можно даже в алфавитном порядке). При выборе скажем в ячейке В1 определенного отдела в ячейке А1 был список, который включает Фамилии сотрудников из листа№2 стоблцаА, работающих в отделе выбраном в ячейке В1 .

Также будет удобно если сделать стоблцы А и В Листа №2 как списки со стройкой добавления (со значком * - при вводе в эту строку список сам разширяется).

Буду очень благодарен за ответ.
...
Рейтинг: 0 / 0
28.01.2006, 17:49:02
    #33509005
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Создал файлик вот такого вида:
http://dump.ru/files/6/6632986732/

В файлике начиная с столбика CA и далее находится информация в виде:
- первая строка - название столба для элемента первого списка
- вторая строка адресса в которых находятся варианты выбора для второго (условного списка)
- все последующие строки столбца - собственно варианты для второго (условного списка).

События выбора в первом списке обрабатываются макросом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rn As Range, c As Range

If (Target.Column = 2) And (Target.Count = 1) And (Target.Text <> "") Then
 Set rn = ThisWorkbook.Worksheets(1).Range("CA1:CZ1")
 Set c = rn.Find(Target)
 If Not c Is Nothing Then
   With Target.Offset(0, 1).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=" & c.Offset(1, 0).Value
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
   End With
 Target.Offset(0, 1).Select
 End If
End If

If (Target.Column = 2) And (Target.Text = "") Then
   With Target.Offset(0, 1).Validation
        .Delete
   End With
   Target.Offset(0, 1) = ""
   Target.Select
End If

End Sub

Проблема в том что сама информация для списков хранится на том же листе что и вся основная форма.
И перенести ее перенести ее, скажем на лист2, не получается?
Когда в строке
Код: plaintext
Set rn = ThisWorkbook.Worksheets(1).Range("CA1:CZ1")
меняем
Код: plaintext
Worksheets(1)
на
Код: plaintext
Worksheets(2) 
- по логике поиск выбраного параметра в списке №1 будет вестить на листе №2 в ячейках CA1:CZ1. А дальше если даже оно находт скажем выбраный параметр в столбце CB в ячейке 1 - то взяв адресс диапазона с ячейки на строку ниже
Код: plaintext
Formula1:="=" & c.Offset(1, 0)
для формирования перечня значений для второго (условного) списка - в соседней ячейке с выбраной макрос получает диапазон скажем CB3:CB13 - и формирует список №2 с ячеек заданого диапазона но с листа №1.

Как правильно оформить адреса чтоб они давали ссылки на Лист2 и тогда будет возможность перенести все данные на Лист2.
Нужно ли что-то менять в макросе (кроме
Код: plaintext
Worksheets(1)
на
Код: plaintext
Worksheets(2) 
)? Или нужно только правильно оформить адреса?
...
Рейтинг: 0 / 0
28.01.2006, 17:49:51
    #33509007
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Файлик еще тут:
...
Рейтинг: 0 / 0
30.01.2006, 09:02:18
    #33509878
Как создать два списка выбора - основной и условный
Excel HelpЕсли список корректных данных находится на другом листе или в другой книге, определите имя внешних данных на активном листе. Это позволит обращаться в поле Источник к имени, находящемся на том же листе. Например, если данные, которые требуется использовать в формуле, находятся в ячейках A6:A12 на первом листе книги Бюджет.xls, на активном листе можно определить имя «Данные» как =[Бюджет.xls]Лист1!$A$6:$A$12 и затем ввести =Данные в поле Источник.

Посмотри.
...
Рейтинг: 0 / 0
30.01.2006, 10:46:20
    #33510120
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Благодарствую. Буду разбираться.
С взгляду единственный недостаток - это то что нужно создавать 20 списков и если есть новые предметы или т.д. - то обновлять вручную список.
Хотя что так что так прийдется обновлять - тока там адреса (там - чуть более наглядно).

Но огромное спасибо за идею. Просто хранить на одном листе форму и список предметов неудобно и чревато проблемами - удат кто пару строк и все.
...
Рейтинг: 0 / 0
30.01.2006, 14:36:39
    #33510954
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Тогда еще вопрос :)
Как присвоить имя автоматически расширяемому диапазону в столбце.
Скажем есть значения в ячейках A3-A13 на Листе2. Необходимо присвоить ему имя для подальшего использования в списке. Как правильно прописать формулу, чтоб когда в ячейку A14 внесут новое значение (до того все ячейки A14-A... пустые) имя автоматически расширялось и на эту ячейку.
На форуме проскакивала эта формула, но никак не могу найти, и не запомнил ее :(.
...
Рейтинг: 0 / 0
30.01.2006, 15:54:09
    #33511227
Livesms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать два списка выбора - основной и условный
Все нашел формулу :):):)

=СМЕЩ(Лист2!$A$1;0;0;СЧЁТЗ(Лист1!$A:$A);1)

Считает сколько непустых ячеек и дает на них смещение.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как создать два списка выбора - основной и условный / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]