Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Условное форматирование с функциями ЕСЛИ и ЕПУСТО - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Условное форматирование с функциями ЕСЛИ и ЕПУСТО
AlexM Дата: Суббота, 10.11.2012, 15:12 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
К сожалению я не понимаю что в таблице. :-(
Вы лучше покажите пример сформированной таблицы по этому шаблону на 20-30 строк.

Есть возможность такого варианта. Макрос записан в некий файл, в котором кнопка. При нажатии кнопки откроется окно выбора папки с файлами, которые надо обработать. После выбора папки последовательно будут открываться файлы, удаляться ненужные строки и сохраняться.
Т.е. макрос всегда в одном файле и записывать его в каждый обрабатываемый файл не надо.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеК сожалению я не понимаю что в таблице. :-(
Вы лучше покажите пример сформированной таблицы по этому шаблону на 20-30 строк.

Есть возможность такого варианта. Макрос записан в некий файл, в котором кнопка. При нажатии кнопки откроется окно выбора папки с файлами, которые надо обработать. После выбора папки последовательно будут открываться файлы, удаляться ненужные строки и сохраняться.
Т.е. макрос всегда в одном файле и записывать его в каждый обрабатываемый файл не надо.

Автор - AlexM
Дата добавления - 10.11.2012 в 15:12
molekula Дата: Суббота, 10.11.2012, 15:42 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, прикрапила 2 файлика:
template.xls - это то, куда и нужно по идее прикрепить макрос, именно это и есть "некий файл". Данные берет из БД.
report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать.
С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона.
В идеале хотелось бы вот так реализовать всю процедуру:
из шаблона формируется файл-отчет (который может содержать ненужные ошибочные адреса),
принимающая сторона получает этот файл, открывает и оп-ля! - срабатывает макрос, который и удалит ненужные адреса.
К сообщению приложен файл: template.xls (37.0 Kb) · report.xls (42.5 Kb)


Сообщение отредактировал molekula - Суббота, 10.11.2012, 15:44
 
Ответить
СообщениеAlexM, прикрапила 2 файлика:
template.xls - это то, куда и нужно по идее прикрепить макрос, именно это и есть "некий файл". Данные берет из БД.
report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать.
С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона.
В идеале хотелось бы вот так реализовать всю процедуру:
из шаблона формируется файл-отчет (который может содержать ненужные ошибочные адреса),
принимающая сторона получает этот файл, открывает и оп-ля! - срабатывает макрос, который и удалит ненужные адреса.

Автор - molekula
Дата добавления - 10.11.2012 в 15:42
AlexM Дата: Суббота, 10.11.2012, 16:39 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Мы недопонимаем друг друга.
"report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать.
С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона."
1. А как же там окажется макрос?
2. Если принимающая сторона запретит выполнение макроса, то адрес останется и его естественно увидят.

Я уже писал, что не понимаю как работает файл шаблона template.xls. Событие для запуска макроса нужно в этом файле, после того как файл report.xls будет сформирован и сохранен.

В присоединенном файле макрос, который при запуске удалит не нужные адреса в сформированном файле report.xls, расположенном в той же папке, что и файл с макросом.
Этот макрос можно было поместить в файл template.xls и запускать по какому-то событию, но я не знаю по какому.
К сообщению приложен файл: Macros_report.xls (22.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМы недопонимаем друг друга.
"report.xls - это сформированный по этому шаблону результат, с ним и ненадо ничего делать.
С нашей стороны никто этот файл перед отправкой смотреть не будет, только получающая сторона."
1. А как же там окажется макрос?
2. Если принимающая сторона запретит выполнение макроса, то адрес останется и его естественно увидят.

Я уже писал, что не понимаю как работает файл шаблона template.xls. Событие для запуска макроса нужно в этом файле, после того как файл report.xls будет сформирован и сохранен.

В присоединенном файле макрос, который при запуске удалит не нужные адреса в сформированном файле report.xls, расположенном в той же папке, что и файл с макросом.
Этот макрос можно было поместить в файл template.xls и запускать по какому-то событию, но я не знаю по какому.

Автор - AlexM
Дата добавления - 10.11.2012 в 16:39
molekula Дата: Суббота, 10.11.2012, 16:53 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, спасибо! Так всё работает замечательно, но как это всё объединить в единый файл...Т.е. нет возможности, чтоб из шаблона в отчет создавалась кнопка "Удалить адреса"?
тогда мы передавали бы 2 файла - отчет + макрос?
 
Ответить
СообщениеAlexM, спасибо! Так всё работает замечательно, но как это всё объединить в единый файл...Т.е. нет возможности, чтоб из шаблона в отчет создавалась кнопка "Удалить адреса"?
тогда мы передавали бы 2 файла - отчет + макрос?

Автор - molekula
Дата добавления - 10.11.2012 в 16:53
AlexM Дата: Суббота, 10.11.2012, 17:32 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Как без открытия файла report.xls прописать в него макрос я не знаю. :-(

Может после формирования отчета шаблоном template.xls в нем же вам нажать кнопку удаления адресов?
К сообщению приложен файл: template_new.xls (50.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеКак без открытия файла report.xls прописать в него макрос я не знаю. :-(

Может после формирования отчета шаблоном template.xls в нем же вам нажать кнопку удаления адресов?

Автор - AlexM
Дата добавления - 10.11.2012 в 17:32
Serge_007 Дата: Суббота, 10.11.2012, 17:39 | Сообщение № 26
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (AlexM)
Такое событие есть
Private Sub Workbook_Open()

А у реципиента макросы будут включены?
Иначе это всё работать не будет smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (AlexM)
Такое событие есть
Private Sub Workbook_Open()

А у реципиента макросы будут включены?
Иначе это всё работать не будет smile

Автор - Serge_007
Дата добавления - 10.11.2012 в 17:39
molekula Дата: Суббота, 10.11.2012, 17:42 | Сообщение № 27
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, реципиенту инструкцию отправим smile
 
Ответить
СообщениеSerge_007, реципиенту инструкцию отправим smile

Автор - molekula
Дата добавления - 10.11.2012 в 17:42
molekula Дата: Суббота, 10.11.2012, 17:46 | Сообщение № 28
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, ну вроде всё ближе и ближе подбираемся к нужному результату. И еще такой вопрос:
как в макросе прописать переменное имя файла?
Сейчас там прописано - Set report = Workbooks.Open(ThisWorkbook.Path & "\report.xls")
но к имени файла еще будет приписана дата, например report_ДАТА.xls, где ДАТА - ежедневно меняется
Подстановка звездочки не помогла
 
Ответить
СообщениеAlexM, ну вроде всё ближе и ближе подбираемся к нужному результату. И еще такой вопрос:
как в макросе прописать переменное имя файла?
Сейчас там прописано - Set report = Workbooks.Open(ThisWorkbook.Path & "\report.xls")
но к имени файла еще будет приписана дата, например report_ДАТА.xls, где ДАТА - ежедневно меняется
Подстановка звездочки не помогла

Автор - molekula
Дата добавления - 10.11.2012 в 17:46
AlexM Дата: Суббота, 10.11.2012, 18:29 | Сообщение № 29
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
покажите пример имени файла. Дата в каком формате?
Как 010112 или 01012012 или 120101 и тд.
Кнопку нажимать будете в день создания отчета или может быть позже, в другие дни?
Жалко что нет события по которому запускать макрос.
Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Суббота, 10.11.2012, 18:31
 
Ответить
Сообщениепокажите пример имени файла. Дата в каком формате?
Как 010112 или 01012012 или 120101 и тд.
Кнопку нажимать будете в день создания отчета или может быть позже, в другие дни?
Жалко что нет события по которому запускать макрос.
Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?

Автор - AlexM
Дата добавления - 10.11.2012 в 18:29
molekula Дата: Суббота, 10.11.2012, 18:37 | Сообщение № 30
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, к имени будет подставляться _ГГГГММДД.xls (например - report20121110.xls)

Quote (AlexM)
Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?

вроде ничего, заполняется данными из БД и автоматически по заданному расписанию отсылается по e-mail адресату
 
Ответить
СообщениеAlexM, к имени будет подставляться _ГГГГММДД.xls (например - report20121110.xls)

Quote (AlexM)
Вы подумайте что происходит по окончании создания файла report. Может быть отслеживать содержимое какой-то ячейки?

вроде ничего, заполняется данными из БД и автоматически по заданному расписанию отсылается по e-mail адресату

Автор - molekula
Дата добавления - 10.11.2012 в 18:37
AlexM Дата: Суббота, 10.11.2012, 20:05 | Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
В примере вы ошиблись?
Надо так report_20121110.xls или так report20121110.xls?
Я сделал с подчеркиванием.
И так, макрос обработает файл, у которого дата соответствует сегодняшней.
К сообщению приложен файл: template_newd.xls (51.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ примере вы ошиблись?
Надо так report_20121110.xls или так report20121110.xls?
Я сделал с подчеркиванием.
И так, макрос обработает файл, у которого дата соответствует сегодняшней.

Автор - AlexM
Дата добавления - 10.11.2012 в 20:05
molekula Дата: Суббота, 10.11.2012, 20:56 | Сообщение № 32
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, да, в названии файла есть подчеркивание. Ну и уж совсем последний вопрос - можно отменить жесткую привяку даты к "сегодняшней", пусть обрабатывает файл с любой датой в названии по маске _ГГГГММДД ?
 
Ответить
СообщениеAlexM, да, в названии файла есть подчеркивание. Ну и уж совсем последний вопрос - можно отменить жесткую привяку даты к "сегодняшней", пусть обрабатывает файл с любой датой в названии по маске _ГГГГММДД ?

Автор - molekula
Дата добавления - 10.11.2012 в 20:56
AlexM Дата: Суббота, 10.11.2012, 21:57 | Сообщение № 33
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Пробуйте.
Макрос обработает все файлы с маской report_ГГГГММДД.xls с любой датой (с любой абброкадаброй после "report_"), которые находятся в той же папке, что и файл с макросом.
К сообщению приложен файл: template_newz.xls (52.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Суббота, 10.11.2012, 22:27
 
Ответить
СообщениеПробуйте.
Макрос обработает все файлы с маской report_ГГГГММДД.xls с любой датой (с любой абброкадаброй после "report_"), которые находятся в той же папке, что и файл с макросом.

Автор - AlexM
Дата добавления - 10.11.2012 в 21:57
molekula Дата: Суббота, 10.11.2012, 23:20 | Сообщение № 34
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, спасибо!! Остается опробовать макрос "в бою". В понедельник отпишусь.
 
Ответить
СообщениеAlexM, спасибо!! Остается опробовать макрос "в бою". В понедельник отпишусь.

Автор - molekula
Дата добавления - 10.11.2012 в 23:20
molekula Дата: Понедельник, 12.11.2012, 14:13 | Сообщение № 35
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Помогите пожалуйста исправить макрос:
он правит файлы с названиями "Vod_*.xls", которые лежат в той же папке что и макрос, а нужно, чтобы в самом себе.
К сообщению приложен файл: Vod.xls (50.0 Kb)
 
Ответить
СообщениеПомогите пожалуйста исправить макрос:
он правит файлы с названиями "Vod_*.xls", которые лежат в той же папке что и макрос, а нужно, чтобы в самом себе.

Автор - molekula
Дата добавления - 12.11.2012 в 14:13
AlexM Дата: Понедельник, 12.11.2012, 14:39 | Сообщение № 36
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Проверяйте
К сообщению приложен файл: Vod_new.xls (46.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПроверяйте

Автор - AlexM
Дата добавления - 12.11.2012 в 14:39
molekula Дата: Понедельник, 12.11.2012, 14:54 | Сообщение № 37
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, добрый день! Выдает ошибку sad

вот тут [vba]
Code
If CInt(Left(Cells(i, 4), 1)) > 5 Then Cells(i, 5).ClearContents
[/vba]
 
Ответить
СообщениеAlexM, добрый день! Выдает ошибку sad

вот тут [vba]
Code
If CInt(Left(Cells(i, 4), 1)) > 5 Then Cells(i, 5).ClearContents
[/vba]

Автор - molekula
Дата добавления - 12.11.2012 в 14:54
AlexM Дата: Понедельник, 12.11.2012, 16:06 | Сообщение № 38
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Вы писали
"нужно, чтобы в самом себе" правил.
Макрос выдает ошибку, потому что в ячейке D10 шаблона нет чисел. Числа есть в файлах report, которые формируются на основе шаблона.
Я думал, что после заполнения шаблона данными, таблица в нем будет соответствует таблице в report, и только тогда вы нажмете кнопку.
Давайте разбираться дальше.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВы писали
"нужно, чтобы в самом себе" правил.
Макрос выдает ошибку, потому что в ячейке D10 шаблона нет чисел. Числа есть в файлах report, которые формируются на основе шаблона.
Я думал, что после заполнения шаблона данными, таблица в нем будет соответствует таблице в report, и только тогда вы нажмете кнопку.
Давайте разбираться дальше.

Автор - AlexM
Дата добавления - 12.11.2012 в 16:06
molekula Дата: Понедельник, 12.11.2012, 16:36 | Сообщение № 39
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

AlexM, вот файл отчета сформированный из шаблона. Я не писала, но сколько в нем по итогу будет строк с данными заранее не известно - каждый день по разному будет получаться((
К сообщению приложен файл: Vod_20121107.xls (76.5 Kb)
 
Ответить
СообщениеAlexM, вот файл отчета сформированный из шаблона. Я не писала, но сколько в нем по итогу будет строк с данными заранее не известно - каждый день по разному будет получаться((

Автор - molekula
Дата добавления - 12.11.2012 в 16:36
AlexM Дата: Понедельник, 12.11.2012, 16:51 | Сообщение № 40
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Не подумал, что может быть всего одна строка.
Замените 10 на 9 в строке
Range("B10").End(xlDown).Row
получится
Range("B9").End(xlDown).Row
Эта строка определяет ячейку с последней записью, так что о количестве думать не надо.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеНе подумал, что может быть всего одна строка.
Замените 10 на 9 в строке
Range("B10").End(xlDown).Row
получится
Range("B9").End(xlDown).Row
Эта строка определяет ячейку с последней записью, так что о количестве думать не надо.

Автор - AlexM
Дата добавления - 12.11.2012 в 16:51
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!