Страницы: 1
RSS
Создание прайс-листа путем копирования в один шаг
 
Здравствуйте!  
Проблема в следующем:  
Ежедневно по работе получаю обновленные ОБЪЕМНЫЕ прайс-листы от большого кол-ва поставщиков, мне необходимо проделать с ними следующее: скрыть столбцы с ценами поставщиков и добавить цены моей компании(простейшей формулой), защитить паролем каждый лист каждого прайс-листа. Все просто, но на это уходит около часа нудной работы ежедневно. В целях экономии времени решил создать шаблоны для каждого поставщика куда при получении нового прайса просто вставлял бы данные, благо кол-во столбцов меняется крайне редко и формула с ценой не страдает. Но поскольку я только недавно открыл для себя огромные возможности Excel, столкнулся со следующими проблемами:  
1) Некоторые прайсы содержат изображения и при копировании оказываются не там где должны быть, Target.EntireRow.AutoFit не помогает, так как есть строки растянутые вручную. То же самое и с шириной столбцов. Выходит нам нужно, чтобы ширина и высота каждой ячейки соответствовала копируемой.  
2) Количество и порядок строк в прайсах меняются, и соответственно в столбце где формула с ценой иногда будет появлятся значение "0". Как бы от него избавиться?  
3) Искал, но не нашел функцию, которая сохраняла бы книгу, после каждого изменения под определенным именем в определенную директорию. В идеале, чтобы сама смотрела дату, например "Прайс Столы 04.04.12"  
4) Очень часто приходят ужасные книги с кучей разных шрифтов, размеров, цветов и т.п. Есть ли возможность все непустые ячейки приравнять к единому шрифту(скажем Arial), размеру и цвету при копировании? Но так, чтобы размер не стал больше чем был (а то у нас все не влезет в ячейки которые мы копируем)  
 
Вроде это все. Наверное, кому-то будет забавно читать то, что я написал, уж извините, я тут дуб дубом. Думаю, знающим людям будет понятно как это решить и без файла, повторюсь, таблицы простейшие: наименование, хар-ки, цена. Спасибо за внимание!
 
Excel 2003
 
Всю задачу в целом конечно нужно решать, видя конкретные файлы.  
 
1. Можно копировать форматы (см. спецвставка).  
2. 0 можно убрать в настройках листа, или измените формулу, добавив ЕСЛИ()  
3. Макрос. Но нужно ли это делать после КАЖДОГО изменения?  
4. Не понял - можно ведь выделить весь лист и поменять шрифт сразу всему?  
 
И последнее - подтянуть цены из одного прайса в другой можно макросом  
 
http://www.excelworld.ru/index/comparefiles_find/0-25  
или  
http://hugo.nxt.ru/CompareFiles.Find.rar  
http://ibay.narod.ru/other/CompareFiles.Find.rar  
 
В макросе ничего менять не нужно, все параметры заводятся в ячейки на листе настроек.  
Но 15 пробных запусков, потом хочу немного денег :)  
 
Но отпадёт вопрос с формулами, форматами, возможно шрифтами... Просто в прайсе появятся Ваши цены, можно их лепить поверх (или сперва их все вручную удалить) цен поставщика.  
Тогда и скрывать ничего не нужно, и пароли ставить вероятно тоже.
 
Приложил файл с 2 листами: Источник и приемник. Шапки кстати разные, это важно.  
В идеале план такой:    
- выделяем всю таблицу из источника, жмем Ctrl+C  
- открываем приемник, выделяем верхную левую ячейку таблицы и жмем Ctrl+V Метаморфозы:  
- поскольку количество столбцов одинаковое, то в столбце с формулой получаем нужные нам циферки, но так как мы не знаем точное кол-во строк, столбец должен сам растянуть ячейку с формулой вниз до пустых ячеек в соседнем столбце(как-то мудрено, но больше ничего в голову не приходит)  
- столбцы с ценами поставщиков прячутся  
- высота и ширина ячеек меняются на размеры исходника  
- шрифты, размеры и цвета приводятся к единому, не превышающему размер исходника, дабы все уместилось в размеры наших ячеек  
- страница защищается паролем, от любых изменений и выделений ячеек  
- и сохраняется в нужную нам директорию под нужным именем  
 
1) Да, но редактируется только ширина столбцов и приходится совершать лишнее телодвижение, т.е. сначал отредактировали ширину, потом скопировали таблицу. Уже 2 шага. А цель в идеале - вся работа в 1 шаг.  
Что касается высоты – попробовал применить:  
Private Sub Worksheet_Change(ByVal Target As Range)  
Target.EntireRow.AutoFit  
End Sub  
Но ничего не вышло т.к. выравнивание идет по шрифту, а это не всегда подходит из-за растянутых вручную строк для правильного отображения изображений в них. Т.е. строка у меня остается стандартной высоты, а изображение налеплено сверху и лезет на соседние строки. То есть нужно, чтобы ширина и высота становились точь в точь как в источнике.  
 
2) Тут спасибо, переписал формулу.  
 
3) По идее не нужно, но опять же, если мы стремимся к 1 шагу, то изменение будет лишь одно(Ctrl+V). Я понимаю, что макрос, но какой? я абсолютно не знаю где найти список всех возможных команд в макросах, какие запросы в поисковике ни введу - все мимо кассы. Мне по сути и нужен 1 большой и длинный макрос прописанный в каждом шаблоне.  
 
4) Можно. Я все это могу сделать вручную и делаю это ежедневно. Не эффективно, уходит куча времени, поэтому и стремлюсь к тому, чтобы все эти операции Excel делал сам.  
 
«И последнее» - Скачал, попробовал. Не подходит. Опять же трата времени уходит на обработку каждого файла, которых, повторюсь, уйма. Да и не все желаемое предусмотрено.  
 
Я не прошу написать все за меня. Подскажите хоть какие использовать команды, как самому написать макрос?
 
Команд вроде немного нужно - open, copy, paste, close :)  
Но Вы нигде не найдёте готового макроса под Вашу задачу. Если уж мой универсальный не подошёл, где всего изменений на новый файл - поменять буквы столбцов на одной стороне (если изменяются, а лист вероятно менять не нужно).  
Путь (файл) будет предложено выбрать в диалоге, если он не забит вручную в ячейке.  
 
Но стремление это дело автоматизировать похвально - а то некоторые по полдня (или весь) тратят на работу, которую можно макросом сделать за пару секунд.  
Для начала попробуйте весь процесс записать рекордером  - потом изучайте и меняйте полученный код. Недостающее придётся туда добавлять вручную.
 
Посмотрел пример - да, мой макрос не подходит, т.к. Вашего прайса изначально нет...
 
офф...  
А наценка неплохая... Из 100 получаете 559 :)  
Т.е. свою работу по продаже оцениваете в 4,5 раз выше работы по производству?
 
Это из рублей в тенге перевод по курсу :) Будь такая наценка, я бы не мучался, а готовое решение заказал)
 
Количество и порядок строк в прайсах меняются.  
 
Если вам понадобится объединять разнотипные прайс-листы, формируя на выходе файлы Excel или CSV (приводя все прайсы к единому виду), может помочь эта программа:  
«Прайс лист» - программа объединения и обработки прайс листов  
 http://excelvba.ru/programmes/Unification</A>  
 
PS: Сейчас инструкция к программе ещё не написана, да и функционал реализован далеко не весь запланированный. В скором времени это исправлю.
Страницы: 1
Читают тему
Наверх