Суть проблемы:Есть большое количество прайс листов для разных филиалов, в каждом файле однотипные таблицы(во вложении пример) со списком городов и ценами(города стоят в алфавитном порядке, количество может отличаться). Периодически приходится добавлять новые города в каждый прайслист, это крайне накладно по времени. Вопрос можно ли написать макрос, который бы при запуске запрашивал название нового города и добавлял бы в нужное место(чтобы сохранялся алфавитный порядок) строку для этого города во все прайс-листы находящиеся в указанной папке? И вопрос номер два, можно ли сделать так, чтобы макрос помещал в эту строчку формулу, которая бы подтягивала по названию цены?
Помогите ради бога, а то я с этими прайсами с ума сойду.
Добрый день,
Суть проблемы:Есть большое количество прайс листов для разных филиалов, в каждом файле однотипные таблицы(во вложении пример) со списком городов и ценами(города стоят в алфавитном порядке, количество может отличаться). Периодически приходится добавлять новые города в каждый прайслист, это крайне накладно по времени. Вопрос можно ли написать макрос, который бы при запуске запрашивал название нового города и добавлял бы в нужное место(чтобы сохранялся алфавитный порядок) строку для этого города во все прайс-листы находящиеся в указанной папке? И вопрос номер два, можно ли сделать так, чтобы макрос помещал в эту строчку формулу, которая бы подтягивала по названию цены?
Помогите ради бога, а то я с этими прайсами с ума сойду. Gnomoiad
города стоят в алфавитном порядке, количество может отличаться
Название нового города может уже быть в каком-либо файле, либо надо проверять его наличие в каждом файле? Как формулу поместить в строчку? Формулу помещают в ячейку. Какую формулу и куда надо поместить?
Цитата
города стоят в алфавитном порядке, количество может отличаться
Название нового города может уже быть в каком-либо файле, либо надо проверять его наличие в каждом файле? Как формулу поместить в строчку? Формулу помещают в ячейку. Какую формулу и куда надо поместить?Kuzmich
Открываете по очереди каждый файл, добавляете новый город в конец столбца А, затем используйте метод объекта Range.FillDown, чтобы перенести форматирование с верхней строки, потом весь диапазон сортируете по алфавиту. Как-то так.
Открываете по очереди каждый файл, добавляете новый город в конец столбца А, затем используйте метод объекта Range.FillDown, чтобы перенести форматирование с верхней строки, потом весь диапазон сортируете по алфавиту. Как-то так.Kuzmich
Gnomoiad, Приведу реализацию перебора всей папки. Для примера положите Ваш файл "6873094.xls" в папку "C:\11\" и нажмите кнопку
Спасибо!!! Надо конечно потестить, но вроде как строки вставляет отлично. Отдельная строка для формулы, очень удобно, я как-то об этом даже не подумал. Но есть два "но": 1.Там три разные формулы было для каждого блока таблицы своя. 1 простая и две формулы массивов 2.В формуле стоит относительная ссылка на первую ячейку в столбце, когда ее вручную вставляешь она ссылается на первую ячейку во вставляемой строке, а когда ее вставляет макрос она везде А20. Вот это бы допилить и совсем хорошо было бы.)) В любом случае спасибо огромное, надо все-таки учить VBA вещь отличная!
Gnomoiad, Приведу реализацию перебора всей папки. Для примера положите Ваш файл "6873094.xls" в папку "C:\11\" и нажмите кнопку
Спасибо!!! Надо конечно потестить, но вроде как строки вставляет отлично. Отдельная строка для формулы, очень удобно, я как-то об этом даже не подумал. Но есть два "но": 1.Там три разные формулы было для каждого блока таблицы своя. 1 простая и две формулы массивов 2.В формуле стоит относительная ссылка на первую ячейку в столбце, когда ее вручную вставляешь она ссылается на первую ячейку во вставляемой строке, а когда ее вставляет макрос она везде А20. Вот это бы допилить и совсем хорошо было бы.)) В любом случае спасибо огромное, надо все-таки учить VBA вещь отличная!Gnomoiad
1.Там три разные формулы было для каждого блока таблицы своя. 1 простая и две формулы массивов
Могу предложить несколько вариантов:
Копирование ячеек с первой строки прайса
Вставка формул в не в поле ячейки .Formula, а в .FormulaR1C1 для относительных формул и .FormulaArray для массива соответственно
Вставить в файле прайса данные в формат Таблицы Excel (опция доступна с Excel 2007). В ней прописываешь формулу и она автоматом проставляется по всему столбику таблицы
1.Там три разные формулы было для каждого блока таблицы своя. 1 простая и две формулы массивов
Могу предложить несколько вариантов:
Копирование ячеек с первой строки прайса
Вставка формул в не в поле ячейки .Formula, а в .FormulaR1C1 для относительных формул и .FormulaArray для массива соответственно
Вставить в файле прайса данные в формат Таблицы Excel (опция доступна с Excel 2007). В ней прописываешь формулу и она автоматом проставляется по всему столбику таблицы
Думаю Вам подойдет больше всего Логика проще некуда: после вставки строки копируются диапазон "C20:U20" с формулами
Вот теперь понял. Но вариант с ячейкой для формулы, был лучше, во-первых, потому что частенько формула для нового города должна быть не такая как для всех остальных, а во вторых в "C20:U20" вообще может формулы не быть и тогда совсем плохо будет.
Думаю Вам подойдет больше всего Логика проще некуда: после вставки строки копируются диапазон "C20:U20" с формулами
Вот теперь понял. Но вариант с ячейкой для формулы, был лучше, во-первых, потому что частенько формула для нового города должна быть не такая как для всех остальных, а во вторых в "C20:U20" вообще может формулы не быть и тогда совсем плохо будет.Gnomoiad