Создание выпадающих вписков в Excel
Если бы данные можно было бы разместить не на другом листе, а где-нибудь в уголочке этого же (или же список был бы постоянный и не слишком большой), то можно было бы обойтись вообще без макроса, а спомощью встроенной в Эксель фичи под названием "Проверка данных."
Это находится в меню/Данные/Проверка...
Если сам там не разберёшься или если такой вариант катастрофически не подходит, пиши.
В 97-м Экселе так нельзя. Видимо, добавили в последних версиях.
+ Заперт на ввод в ячеёку
Уж простити меня неуча, первый раз на VB программирую
Эта возможность есть и в MS Excel 97.
Это надо пробовать - поймёт ли в таком виде "Проверка данных". В 97-м точно не поймёт.
P.S. Тебя Паша зовут? Чтоб обращаться, в случае чего, по имени. Меня Сергей.
А ты не путаешь "Проверку данных" и "Поле со списком"? Я специально пробовал с именованным диапазоном - ей-богу, не понимает.
+ Заперт на ввод в ячеёку
Уж простити меня неуча, первый раз на VB программирую
А давай-ка ты подробно распишешь, в чём состоит твоя задача. Так будет гораздо предметнее.
Вообщем припахали меня на работе писать маркос для Excel. Vb вообще увидел первый раз в жизни! Вот поэтому и столько вопросов!
Задача такая есть несколько списков и полей ввода. Задача добавлять данные на текущий лист, как в БД( с этим я справился), а вот как быть с редактированим я что то очень смутно понимаю(как я буаю при выделении ячейки с данными они будут переноситься на селекты и поля ввода). + Надо сделать блокировку на ввод значений в ячейку что б взякую херь не писали. Задачка впринципе не сложная, но вот если знать VB. А я Web - занмаюсь! Так что для меня что то сложновато в понимании....
Задача такая есть несколько списков и полей ввода. Задача добавлять данные на текущий лист, как в БД( с этим я справился), а вот как быть с редактированим я что то очень смутно понимаю(как я буаю при выделении ячейки с данными они будут переноситься на селекты и поля ввода). + Надо сделать блокировку на ввод значений в ячейку что б взякую херь не писали. Задачка впринципе не сложная, но вот если знать VB. А я Web - заниаюсь!
Не всё я понял, но что-то мне подсказывает, что в твоём случае лучше всего склепать простенькую формочку с нужным количеством полей и двумя кнопками - Ок и Отмена. Дело это не хитрое, так что ты не бойся, поможем.
Вопросы:
1. Списки фиксированной длины, установленной "раз и навсегда"?
2. Надо иметь возможность и ввода новых записей и редактирования старых?
С уважением, Павел
С уважением, Павел
Я понял, где я делал не так. Забыл про "=" перед именем диапазона.
А вообще - отлично! Давненько не узнавал я новенького про Эксель, а вот ведь случилось! Я, причём, пользуюсь периодически "проверкой", но раньше прятал списки "в дальнем углу" листа.
Так что, уважаемый Patrick, это для тебя тоже вариант. Можно так, а можно формой. Свои плюсы есть у обоих вариантов.
Я именно поэтому и обратил внимание Patricka.
А в чём там тонкость с Volatile-функциями? Работать не будет? Потому что я бы навскидку воспользовался именно СМЕЩ или ДВССЫЛ.
А ну если так, то понятно. В принципе, это быстрые функции, не то что СУММЕСЛИ и т.п. с перебором больших массивов. Так что на скорость повлиять не должно.
2. Нет, недьзя
С уважением, Павел
А как такое сделать?
Возьми пример от Pashulki. Если в нём что-то непонятно, спрашивай.
Возьмём для примера Пашин файл и создадим там ещё одну такую штуку (учитывая, что список у тебя постоянный)
1. На листе Источник, для примера в столбце С записываем исходные данные. Пусть, для простоты теже Иванов, Петров и т.д., что и Паши.
Допустим, они заняли ячейки С2:С6
2. Выделяем этот диапазон, и присваиваем ему имя. ГМ (Главное меню Экселя)/Вставка/Имя/Присвоить. Там ты уже видишь в списке три имени, использованные pashulk-ой, тебе надо присвоить какое-нибудь ещё. Допустим, ПАТРИК.
Этот путь наименования диапазона не самый короткий, но я хотел, чтобы ты увидел где можно смотреть/менять/удалять имена диапазонов.
2+. Теперь весь твой файл знает, что есть диапазон под названием ПАТРИК. Если бы это были числа, а не фамилии, ты мог бы написать в произвольном месте =СУММ(ПАТРИК)
3. Теперь переходим на лист Список и создадим в ячейке A8 проверку данных. Выделяем А8 и идём в меню ГМ/Данные/Проверка...
В появившемся окне на вкладке Параметры устанвливаем Тип данных = Список, Источник = "=ПАТРИК". Нажимаем "ОК". Всё.
3++. Можешь потом в настроечном окне Проверки данных самостоятельно поиграть с вкладками Сообщение для ввода и Сообщение об ошибке. Сам увидишь, на что они влияют.
Примечание : "Источник" - это имя рабочего листа, которое используется только в качестве примера.
В природе не существует раздела VBAE, в котором бы мы не разобрались.