Автоматизация сохранения отчета Л7 для импорта в АвтоПарк

Опять про работу, но безотносительно АвтоПарк.

Автоматизация сохранения отчета Л7 для импорта в АвтоПарк

Сообщение Павел Штатнов » Пятница 22.06.2007 07:12

Надоело каждый раз нажимать много кнопок для того чтобы сохранить отчет Л7 из каскада в формат MSDOS CSV, поэтому написал макрос:

Sub save()

t = Right(Worksheets("Лист1").Cells(1, 1).Value, 8)
newt = "_200706" & Left(t, 2)
filenamenew = "Kaskad" & newt
ChDir "\\ak1789nt01\AutoPark\TXT\Kaskad"
ActiveWorkbook.SaveAs Filename:=filenamenew, FileFormat:=xlCSVMSDOS, CreateBackup:=False


End Sub

При его использовании всё получается, файл сохраняется в нужном формате, в нужном расширении и в нужное место, но
разделитель данных в файле CSV при использовании этого макроса - ','. Если ту же процедуру проделывать руками (т.е. через меню файл сохранить в формат MS-DOS CSV, То получается разделитель данных в файле CSV - ';' - как раз то что нужно АвтоПарку.
Как с этим бороться я пока не нашёл решения, если кто знает, то напишите.
Последний раз редактировалось Павел Штатнов Пятница 22.06.2007 13:35, всего редактировалось 2 раз(а).
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Дмитрий Логинов » Пятница 22.06.2007 09:24

Здравствуйте, Павел
В SaveAs надо добавить параметр Local.
Должно быть так:

ActiveWorkbook.SaveAs Filename:=filenamenew, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
И все будет хорошо :)
P.S. Кстати, можно отключать смайлики (галочка соответствующая под окном редактирования сообщения), чтобы информация не искажалась (как в вашем случае - в операторе Right(..., 8 ) преобразовалось в смайлик 8))
Аватара пользователя
Дмитрий Логинов
pit
pit
 
Сообщения: 30
Зарегистрирован: Четверг 07.06.2007 08:52
Откуда: Полак АйТи

Сообщение Павел Штатнов » Пятница 22.06.2007 10:58

Дмитрий Логинов писал(а):В SaveAs надо добавить параметр Local.
Должно быть так:

ActiveWorkbook.SaveAs Filename:=filenamenew, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
И все будет хорошо :)


Спасибо Дмитрий - действительно очень сильно помогли. Это настолько нудно каждый раз заходить в меню меню и руками сохранять файл в нужно формате, когда это делаешь сразу за 30 дней. Теперь станет намного легче.
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Дмитрий Логинов » Пятница 22.06.2007 11:04

Всегда пожалуйста :)
Кстати, а где именно вы сохранили макрос? Надеюсь, вам не приходиться его каждый раз вставлять в Excel перед выполнением?
Аватара пользователя
Дмитрий Логинов
pit
pit
 
Сообщения: 30
Зарегистрирован: Четверг 07.06.2007 08:52
Откуда: Полак АйТи

Сообщение Павел Штатнов » Пятница 22.06.2007 11:22

Дмитрий Логинов писал(а):Всегда пожалуйста :)
Кстати, а где именно вы сохранили макрос? Надеюсь, вам не приходиться его каждый раз вставлять в Excel перед выполнением?


Да-да, я как раз и хотел об этом спросить. Как его правильно сохранить?
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Андрей Гуминов » Пятница 22.06.2007 11:26

А в каком виде Каскад создает отчет? Может в имени книги есть дата отчета?
Я так понял, год и месяц Вы указали в макросе, а день пишете руками в ячейку A1.
Аватара пользователя
Андрей Гуминов
pit
pit
 
Сообщения: 90
Зарегистрирован: Суббота 09.06.2007 11:42
Откуда: Полак АйТи

Сообщение Павел Штатнов » Пятница 22.06.2007 11:32

Андрей Гуминов писал(а):А в каком виде Каскад создает отчет? Может в имени книги есть дата отчета?
Я так понял, год и месяц Вы указали в макросе, а день пишете руками в ячейку A1.


Нет, в ячейке A1 как раз выводится строка "Форма Л7. Поездки по транспортным картам за период с 01/06/07 по 01/06/07"
Как раз из нее я дату и вырезаю. Как вырезать месяц я еще не разобрался.
Имя книги никакой информации не содержит.
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Дмитрий Логинов » Пятница 22.06.2007 11:44

Павел Штатнов писал(а):Да-да, я как раз и хотел об этом спросить. Как его правильно сохранить?

Создаете xls-файл (например, MyMacro.xls). В нем создаете требуемые вам макросы, и сохраняете файл в каталог MS Office - XLStart (если ничего не меняли при установке, то это будет "C:\Program Files\Microsoft Office\OFFICE11\XLSTART" ). При следующем запуске Excel макросы из файла, находящегося в этом каталоге, будут доступны в любом документе Excel.
Аватара пользователя
Дмитрий Логинов
pit
pit
 
Сообщения: 30
Зарегистрирован: Четверг 07.06.2007 08:52
Откуда: Полак АйТи

Сообщение Андрей Гуминов » Пятница 22.06.2007 12:02

Понятно. Ну так функций Right и Left достаточно, Вы уже почти всё сделали:
Код: Выделить всё
t = Right(Worksheets("Лист1").Cells(1, 1).Value, 8)
newt = "_200706" & Left(t, 2)
следует модифицировать:
Код: Выделить всё
t = Right(Worksheets("Лист1").Cells(1, 1).Value, 8)
newt = "_20" & Right(t, 2) & Left(Right(t, 5), 2) & Left(t, 2)


По поводу сохранения Дмитрий всё правильно написал.
Рекомендую также выполнить в Excel пункт меню "Окно - Скрыть", чтобы сама книга не мешалась.
Аватара пользователя
Андрей Гуминов
pit
pit
 
Сообщения: 90
Зарегистрирован: Суббота 09.06.2007 11:42
Откуда: Полак АйТи

Сообщение Павел Штатнов » Пятница 22.06.2007 12:24

Ок, всем спасибо, коллективными усилиями сделали, теперь на то чтобы сохранить форму Л7 уходит 1 секунда
Выкладываю полный текст макроса для желающих и последовательность действий:
1. Создаем МАКРОС:
Sub SaveL7ForAutoPark()

t = Right(Worksheets("Лист1").Cells(1, 1).Value, 8)
newt = "_20" & Right(t, 2) & Left(Right(t, 5), 2) & Left(t, 2)
filenamenew = "\\Ak1789nt01\AutoPark\TXT\KASKAD\Kaskad" & newt 'Укажите свой путь
ChDir "\\ak1789nt01\AutoPark\TXT\Kaskad" 'Укажите свой путь
ActiveWorkbook.SaveAs Filename:=filenamenew, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True


End Sub

2. Сохраняем его в пустой книге в C:\Program Files\Microsoft Office\OFFICE11\XLSTART\

3. Создаем кнопку на любой панели инструментов и назначаем ей макрос

4. Выгружаем Л7 нажимаем созданную кнопку и наслаждаемся...
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Светлана Хорькова » Пятница 22.06.2007 13:31

о как! Какие вы молодцы!
попользую обязательно
Аватара пользователя
Светлана Хорькова
 
Сообщения: 1637
Зарегистрирован: Четверг 07.06.2007 11:23
Откуда: А/k-1792 г.Клин

Сообщение Светлана Хорькова » Пятница 22.06.2007 14:09

Павел Штатнов писал(а):3. Создаем кнопку на любой панели инструментов и назначаем ей макрос

4. Выгружаем Л7 нажимаем созданную кнопку и наслаждаемся...


может Уважаемый "Полак" влючит этот макрос в свой макрос "Автопарк " и нам сразу станет легче , еще легче?
Аватара пользователя
Светлана Хорькова
 
Сообщения: 1637
Зарегистрирован: Четверг 07.06.2007 11:23
Откуда: А/k-1792 г.Клин

Сообщение Леонид Сандал » Пятница 22.06.2007 14:24

Светлана Хорькова писал(а):
Павел Штатнов писал(а):3. Создаем кнопку на любой панели инструментов и назначаем ей макрос

4. Выгружаем Л7 нажимаем созданную кнопку и наслаждаемся...


может Уважаемый "Полак" влючит этот макрос в свой макрос "Автопарк " и нам сразу станет легче , еще легче?


Нет. Пока. Вот тут http://forum.autopark.ru/viewtopic.php?p=314#314 я называл текущую интеграцию АвтоПарк с Каскад чахлой поделкой. Т.е. по уму, следует все переделать. Я еще, в отличие от тебя, Света, надежду не потерял.

P.S.
Наверняка найдется задача, не связанная с АвтоПарк никак совсем, для решения которой потребуется макрос. Вот тут и пригодится копилка в виде MyMacros.xls
P.P.S.
Наступление состояния "легче, еще легче" должно быть плавным :). Любой стресс вреден для здоровья :P
Аватара пользователя
Леонид Сандал
pit
pit
 
Сообщения: 1382
Зарегистрирован: Среда 30.05.2007 18:54
Откуда: Полак АйТи

Сообщение Павел Штатнов » Пятница 22.06.2007 14:26

Светлана Хорькова писал(а):может Уважаемый "Полак" влючит этот макрос в свой макрос "Автопарк " и нам сразу станет легче , еще легче?


Не не нужно, кто знает, что еще МТА в этой форме будет менять???
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

Сообщение Павел Штатнов » Пятница 22.06.2007 14:28

Не пойму прикола...
После выгрузки Л7 список макросов пуст, а если просто открыть EXEL - то макросы есть.
:roll:
Аватара пользователя
Павел Штатнов
 
Сообщения: 528
Зарегистрирован: Четверг 07.06.2007 11:20
Откуда: Ивантеевка

След.

Вернуться в Не АвтоПарк

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron