К сожалению я не понимаю что в таблице. :-( Вы лучше покажите пример сформированной таблицы по этому шаблону на 20-30 строк.
Есть возможность такого варианта. Макрос записан в некий файл, в котором кнопка. При нажатии кнопки откроется окно выбора папки с файлами, которые надо обработать. После выбора папки последовательно будут открываться файлы, удаляться ненужные строки и сохраняться. Т.е. макрос всегда в одном файле и записывать его в каждый обрабатываемый файл не надо.
К сожалению я не понимаю что в таблице. :-( Вы лучше покажите пример сформированной таблицы по этому шаблону на 20-30 строк.
Есть возможность такого варианта. Макрос записан в некий файл, в котором кнопка. При нажатии кнопки откроется окно выбора папки с файлами, которые надо обработать. После выбора папки последовательно будут открываться файлы, удаляться ненужные строки и сохраняться. Т.е. макрос всегда в одном файле и записывать его в каждый обрабатываемый файл не надо.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
AlexM, прикрапила 2 файлика: template.xls - это то, куда и нужно по идее прикрепить макрос, именно это и есть "некий файл". Данные берет из БД. report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать. С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона. В идеале хотелось бы вот так реализовать всю процедуру: из шаблона формируется файл-отчет (который может содержать ненужные ошибочные адреса), принимающая сторона получает этот файл, открывает и оп-ля! - срабатывает макрос, который и удалит ненужные адреса.
AlexM, прикрапила 2 файлика: template.xls - это то, куда и нужно по идее прикрепить макрос, именно это и есть "некий файл". Данные берет из БД. report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать. С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона. В идеале хотелось бы вот так реализовать всю процедуру: из шаблона формируется файл-отчет (который может содержать ненужные ошибочные адреса), принимающая сторона получает этот файл, открывает и оп-ля! - срабатывает макрос, который и удалит ненужные адреса.molekula
Мы недопонимаем друг друга. "report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать. С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона." 1. А как же там окажется макрос? 2. Если принимающая сторона запретит выполнение макроса, то адрес останется и его естественно увидят.
Я уже писал, что не понимаю как работает файл шаблона template.xls. Событие для запуска макроса нужно в этом файле, после того как файл report.xls будет сформирован и сохранен.
В присоединенном файле макрос, который при запуске удалит не нужные адреса в сформированном файле report.xls, расположенном в той же папке, что и файл с макросом. Этот макрос можно было поместить в файл template.xls и запускать по какому-то событию, но я не знаю по какому.
Мы недопонимаем друг друга. "report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать. С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона." 1. А как же там окажется макрос? 2. Если принимающая сторона запретит выполнение макроса, то адрес останется и его естественно увидят.
Я уже писал, что не понимаю как работает файл шаблона template.xls. Событие для запуска макроса нужно в этом файле, после того как файл report.xls будет сформирован и сохранен.
В присоединенном файле макрос, который при запуске удалит не нужные адреса в сформированном файле report.xls, расположенном в той же папке, что и файл с макросом. Этот макрос можно было поместить в файл template.xls и запускать по какому-то событию, но я не знаю по какому.AlexM
AlexM, спасибо! Так всё работает замечательно, но как это всё объединить в единый файл...Т.е. нет возможности, чтоб из шаблона в отчет создавалась кнопка "Удалить адреса"? тогда мы передавали бы 2 файла - отчет + макрос?
AlexM, спасибо! Так всё работает замечательно, но как это всё объединить в единый файл...Т.е. нет возможности, чтоб из шаблона в отчет создавалась кнопка "Удалить адреса"? тогда мы передавали бы 2 файла - отчет + макрос?molekula
AlexM, ну вроде всё ближе и ближе подбираемся к нужному результату. И еще такой вопрос: как в макросе прописать переменное имя файла? Сейчас там прописано - Set report = Workbooks.Open(ThisWorkbook.Path & "\report.xls") но к имени файла еще будет приписана дата, например report_ДАТА.xls, где ДАТА - ежедневно меняется Подстановка звездочки не помогла
AlexM, ну вроде всё ближе и ближе подбираемся к нужному результату. И еще такой вопрос: как в макросе прописать переменное имя файла? Сейчас там прописано - Set report = Workbooks.Open(ThisWorkbook.Path & "\report.xls") но к имени файла еще будет приписана дата, например report_ДАТА.xls, где ДАТА - ежедневно меняется Подстановка звездочки не помоглаmolekula
покажите пример имени файла. Дата в каком формате? Как 010112 или 01012012 или 120101 и тд. Кнопку нажимать будете в день создания отчета или может быть позже, в другие дни? Жалко что нет события по которому запускать макрос. Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?
покажите пример имени файла. Дата в каком формате? Как 010112 или 01012012 или 120101 и тд. Кнопку нажимать будете в день создания отчета или может быть позже, в другие дни? Жалко что нет события по которому запускать макрос. Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Суббота, 10.11.2012, 18:31
В примере вы ошиблись? Надо так report_20121110.xls или так report20121110.xls? Я сделал с подчеркиванием. И так, макрос обработает файл, у которого дата соответствует сегодняшней.
В примере вы ошиблись? Надо так report_20121110.xls или так report20121110.xls? Я сделал с подчеркиванием. И так, макрос обработает файл, у которого дата соответствует сегодняшней.AlexM
AlexM, да, в названии файла есть подчеркивание. Ну и уж совсем последний вопрос - можно отменить жесткую привяку даты к "сегодняшней", пусть обрабатывает файл с любой датой в названии по маске _ГГГГММДД ?
AlexM, да, в названии файла есть подчеркивание. Ну и уж совсем последний вопрос - можно отменить жесткую привяку даты к "сегодняшней", пусть обрабатывает файл с любой датой в названии по маске _ГГГГММДД ?molekula
Пробуйте. Макрос обработает все файлы с маской report_ГГГГММДД.xls с любой датой (с любой абброкадаброй после "report_"), которые находятся в той же папке, что и файл с макросом.
Пробуйте. Макрос обработает все файлы с маской report_ГГГГММДД.xls с любой датой (с любой абброкадаброй после "report_"), которые находятся в той же папке, что и файл с макросом.AlexM
Помогите пожалуйста исправить макрос: он правит файлы с названиями "Vod_*.xls", которые лежат в той же папке что и макрос, а нужно, чтобы в самом себе.
Помогите пожалуйста исправить макрос: он правит файлы с названиями "Vod_*.xls", которые лежат в той же папке что и макрос, а нужно, чтобы в самом себе.molekula
Вы писали "нужно, чтобы в самом себе" правил. Макрос выдает ошибку, потому что в ячейке D10 шаблона нет чисел. Числа есть в файлах report, которые формируются на основе шаблона. Я думал, что после заполнения шаблона данными, таблица в нем будет соответствует таблице в report, и только тогда вы нажмете кнопку. Давайте разбираться дальше.
Вы писали "нужно, чтобы в самом себе" правил. Макрос выдает ошибку, потому что в ячейке D10 шаблона нет чисел. Числа есть в файлах report, которые формируются на основе шаблона. Я думал, что после заполнения шаблона данными, таблица в нем будет соответствует таблице в report, и только тогда вы нажмете кнопку. Давайте разбираться дальше.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
AlexM, вот файл отчета сформированный из шаблона. Я не писала, но сколько в нем по итогу будет строк с данными заранее не известно - каждый день по разному будет получаться((
AlexM, вот файл отчета сформированный из шаблона. Я не писала, но сколько в нем по итогу будет строк с данными заранее не известно - каждый день по разному будет получаться((molekula
Не подумал, что может быть всего одна строка. Замените 10 на 9 в строке Range("B10").End(xlDown).Row получится Range("B9").End(xlDown).Row Эта строка определяет ячейку с последней записью, так что о количестве думать не надо.
Не подумал, что может быть всего одна строка. Замените 10 на 9 в строке Range("B10").End(xlDown).Row получится Range("B9").End(xlDown).Row Эта строка определяет ячейку с последней записью, так что о количестве думать не надо.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.