![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.06.2010
Сообщений: 65
|
![]()
Добрый день! Есть таблица, которая содержит общую информацию. Лист Поставщик1 и Поставщик2 копируется в табл. Все_поставщики. Необходимо заполнить лист Итоговый. Пробую решить задачу при помощи автофильтра, прописывая их макросом. Но т.к. справочник будет большой и наименование, код товара будет изменяться приходится постоянно менять в макросе. А так же как на листе Итоговый в поле Стоимость сумировалась стоимость по данному коду товара. Подскажите как решить проблему, упростив код. Заранее спасибо!
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Расскажите коротенько как именно нужно заполнить - что-то лениво из файла/кода выколупывать логику.
Думаю тут работа для словаря.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.06.2010
Сообщений: 65
|
![]()
Если коротко, то запускаю макрос и лист Итоговый заполняется, беря данные из листа Все_поставщики. В данном варианте лист Справочник роли не играет, т.к. код товара отдельно прописывается в макросе, это очень не удобно и не прававильно, т.к. наименований товара будет около двухсот (придется каждый раз менять в макросе). Задача в том чтобы при изменении наименований и кода товара не приходилось каждый раз прописывать в макросе, а данные (код и наименование товара) брались из справочника.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Попробуйте стандарно сделать сводную (в поиск "эксель сводная"). Можно её макросом обновить (хотя вручную проще).
Если сводная категорически не подходит - можно сделать макрос на словаре. Только непонятно, на кой там вообще справочник?
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.06.2010
Сообщений: 65
|
![]()
В том то и дело, что сейчас справочник не используется, а макросе (на автофильтре) отдельно прописывается код товара (.AutoFilter Field:=2, Criteria1:="001-1"). Код 001-1 соответствует ячейки B1 листа Спровочника. Вопрос как в макросе, вместо "001-1" прописать ячеку B1 листа Справочник.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Если писать нормальный макрос или использовать сводную - суммы по всем позициям, существующим в исходных данных, подтянутся автоматически. Т.е. справочник нужен только для того, чтоб из общей кучи выбрать только те позиции, которые есть в справочнике (ну или показать, что вот эти есть, а этих нет).
А если нужна сводная по существующим - справочник не нужен.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.06.2010
Сообщений: 65
|
![]()
Не только чтобы показать из общей кучи только те позиции, которые есть в справочнике, но и скопировать их на лист Итоговый, каждый в соответсвующюю ячейку на листе Итоговый
With Sheets("все_поставщики").Range("b1" ) .AutoFilter .AutoFilter Field:=2, Criteria1:="001-1" (заместо 001-1, была ячейка Справочник B1) Sheets("все_поставщики").Range("a2: d1000").Copy Worksheets("итоговый").Range("A2"). PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End With |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Если делать вот так на фильтре - ну добавьте цикл по справочнику: берёте очередное значение, подставляете в фильтр.
Но я бы делал иначе, не люблю фильтры, неудобно... Но некогда сейчас писать код, да и пока непонятно что именно нужно делать, зачем этот справочик ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.06.2010
Сообщений: 65
|
![]()
Не знаю я как это сделать, по этому и обратился за помощью))
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Ну например:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 06.02.2015 в 11:10. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать справочник в Office Visual Basic (VBA) | khamal | Помощь студентам | 1 | 15.01.2013 21:59 |
нужен хороший учебник или справочник по VBA | callbitz | Microsoft Office Access | 12 | 24.02.2012 11:19 |
vba выводить сообщение при введении в ячейку данные | johny_03 | Microsoft Office Excel | 4 | 30.12.2011 14:40 |
Проблема при открытии базы при помощи ADO | SlavaSH | БД в Delphi | 21 | 30.06.2009 16:51 |