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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2016, 11:54   #1
rvvrvv73
 
Регистрация: 03.01.2016
Сообщений: 3
По умолчанию Заполнение ячеек данными из другого листа

Никогда ничего не писал под VBA, кроме как на Access, и то очень давно, а тут возникла небольшая надобность в автоматизаци рутинного процесса. Не поможете с реализацией? Порылся в сети, но готового кода, пригодного для моих потребностей, не нашёл.
Дано: таблица под Excel 2003, два листа.
Лист номер 2 содержит некий перечень изделий с параметрами, 1 колонка - наименование и 2-3 колонки с, скажем, ценой и весом.
Требуется на первом листе реализовать следующий функционал - первая колонка содержит ячейки с выпадающим списком, источником данных для которого служит первая колонка второго листа. При выборе пункта из списка автоматически на на первом листе заполняются ячейки этой строки данными из соответствующей строки на втором листе.
Как я понимаю, операция тривиальная, но я что-то с ходу не понял, как это сделать. Даже вполне допускаю, что это можно реализовать штатными средствами Excel без программирования.
rvvrvv73 вне форума Ответить с цитированием
Старый 03.01.2016, 12:14   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

С файлом, конечно, было б легше что-то советовать.
Вложения
Тип файла: xlsx Книга1.xlsx (8.8 Кб, 45 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 03.01.2016, 15:24   #3
rvvrvv73
 
Регистрация: 03.01.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
С файлом, конечно, было б легше что-то советовать.
Я посмотрел присланный вариант. Вполне работает, только что опробовал.
Жалко, что IFERROR в 2003м Экселе нет. Но, поскольку делаю это не на заказ, а для внутреннего употребления - вполне сойдёт, я думаю, главное, что данные подставляются и сумма считается.
Пришлось только добавить проверку пустого значения в ячейке, по которой идёт поиск, чтобы ошибка нормально отрабатывалась и всё не заполнялось автоматом ошибкой #Н/Д.

Спасибо
rvvrvv73 вне форума Ответить с цитированием
Старый 03.01.2016, 16:28   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
ЕСЛИ(ЕНД(ВПР(A1;Лист2!$A$1:$C$3;2;0));"";ВПР(A1;Лист2!$A$1:$C$3;2;0))
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 03.01.2016, 18:39   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от rvvrvv73 Посмотреть сообщение
Жалко, что IFERROR в 2003м Экселе нет
Если на VBA аллергии нет, то в простейшем случае можно так
Код:
Function IFERROR(x, y)
  If IsError(x) Then IFERROR = y Else IFERROR = x
End Function
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 03.01.2016, 18:42   #6
rvvrvv73
 
Регистрация: 03.01.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Если на VBA аллергии нет, то в простейшем случае можно так
Код:
Function IFERROR(x, y)
  If IsError(x) Then IFERROR = y Else IFERROR = x
End Function
Аллергии нет, но я в последний раз что-то программил лет 15 назад, а на VBA - ещё раньше. Так что навык написать что-то сложнее Hello World утерян, могу разве что по мелочи поправить чужой код.
Коллега выше мою проблему решил, за что ему большое спасибо.
rvvrvv73 вне форума Ответить с цитированием
Старый 03.01.2016, 19:42   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
=ЕСЛИ(СЧЕТЕСЛИ(Лист2!$A:$A;A1)=0;"";ВПР(A1;Лист2!$A$1:$C$3;2;0))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение листа данными с другого листа. Pasha_Z Microsoft Office Excel 6 17.01.2014 20:01
Заполнить ComboBox данными с другого листа umka777_89 Microsoft Office Excel 12 06.06.2013 22:21
Ссылка ячеек одного листа на ячейки другого листа n0str0m0 Microsoft Office Excel 10 31.12.2011 12:11
Как ComboBox на UserForm заполнить данными с другого листа ? Snekich Microsoft Office Excel 2 08.12.2011 18:37
Работа с данными с другого листа printer Microsoft Office Excel 1 14.06.2011 20:01