Из обработки 1С в Excel файл добавить макрос #352208


#0 by NikVars
Из обработки 1С формирую excel-файл. Возникла необходимость сформировать в 1С и вставить в этот excel-файл excelевский макрос. Есть у кого-нибудь примерчик как это сделать?
#1 by lea_220400
а что за отчет?
#2 by korefana
мне вот тоже интересно :)
#3 by lea_220400
ну если из SQL тянешь, то сделай файлик и пропиши подключение к базе, а на SQL через манагера сделай Stored процедурку и припаяй её к XLS файлику, а там можешь с EXcel крутить как хотеть.
#4 by lea_220400
а прикручивать через 1С макрос как-то не айс
#5 by NikVars
Дир хочет чтобы его отчет был раскрашен так, как он уже привык. Из 1С такой отчет раскасить не удается. Обнаружил, что 1С вместо цвета RGB(255,153,0) (оранжевый) рисует цвет RGB(217,133,62)(коричневый). Для примера сформируй из 1С екселевкий файл и сохрани. Потом открой его в екселе, нажми на кнопку А (цвет текста) и сравни цвета с пустым екселевским файлом. Разницу увидишь. Я в муках родил макрос на VBA, который меняет фу цвет дира, на нужный цвет дира. Теперь хочу впихнуть этот макрос автоматом в создаваемый мной екселевский файл. А знаний не хватает...
#6 by NikVars
УРА!!!!!!!!!!!! Прикрутил!!!!!!!!!!!!!!
#7 by lea_220400
кажи код.
#8 by NikVars
В файле c:Макрос.txt лежит макрос!!! Задача решена, но неуклюже!!!!! Хочется макрос хранить не в файле,  а посторочно его формировать из обработки 1С. Есть примеры этой хитровинки?
#9 by Яндекс
странные вы сделали обнаружения... ей богу... уже сколько лет работаю с екселем и до сих пор этого не обнаружил
#10 by NikVars
Спасибо диру, умеет указывать на пробелы в знаниях. Не я первый это обнаружил. Где-то были на форме RGB 49 цветов, с которыми оперирует 1С 7.7. Ссылка затерялась. Я не поверил, но когда сам столкнулся, то визуально в этом убедился. Привожу их (изивините, источник где-то на мисте!) R;G;B 0;0;0 0;0;128 0;0;255 0;69;0 0;128;0 0;128;128 0;128;192 0;207;255 0;255;0 0;255;255 29;47;190 40;102;118 42;111;249 49;57;0 63;184;205 69;62;1 72;132;54 74;50;133 96;0;128 98;79;172 105;255;255 106;40;19 128;0;0 128;0;128 128;32;96 128;128;0 128;128;128 128;128;255 133;57;106 142;94;66 149;140;65 160;98;122 160;160;164 160;224;224 166;202;240 179;143;238 192;192;192 192;192;255 192;220;192 217;133;62 221;156;179 224;255;224 255;0;0 255;0;255 255;128;128 255;251;240 255;255;0 255;255;192 255;255;255
#11 by NikVars
В дополнение к . После импорта макроса его можно запустить! Эксел.Run("<НазваниеМакросаВФайлеc:Макрос.txt>"); ...и нет нужды лезть в екселевский файл для запуска макроса.
#12 by NikVars
Все задача решена!!! И в подтверждение привожу код!!!
#13 by b_ru
Все правильно. Но по умолчанию в Экселе запрещен доступ к vbProject в целях безопасности (борьбы с макровирусами). Поэтому его надо разрешить, либо как-то по-другому выйти из положения Хотя для данной задачи все это абсолютно не нужно :)
#14 by FN
А не проще открыть файл и раскрасить его оле-методами Екселя?
#15 by NikVars
Раскарсить из 1С?
#16 by FN
ага
#17 by NikVars
Читай сначала!!! Чего будешь делать если тебе 1С вместо одно цвета будет другой пихать?!
#18 by NikVars
А она пихает!!!!!!!!!!!!!!!!
#19 by FN
хм... щас попробую
#20 by NikVars
Давай! Только не сильно удивляйся!
#21 by FN
У меня все ОК. что делал: запустил Ексель, запустил макрос, покрасил три области. посмотрел макрос - перевел в 1С, запустил, получил идентичную раскраску. вот такой код: что я сделал не так?
#22 by NikVars
В принципе, все так, только когда ты формируешь файл екселевский из 1С,у тебя ColorIndex-ы разные!!! В екселе одна пачка значений, сформированного из 1С - другая! См. . Соответственно ColorIndex одинаковые, а RGB - разные!
#23 by NikVars
Все, убегаю! Если будет решение попроще, то буду очень благодарен за идею и дважды благодарен за пример реализации!
#24 by smaharbA
Ужас !!!
#25 by FN
случайно натолкнулся на решение проблемы из . Делаем так: Ексель.ActiveWorkbook.ResetColors; а потом пользуемся стандартной палитрой кодом из
#26 by smaharbA
А чем про цвета, атрибут формы неустраивает ? Можно и екселевские методы применить...
#27 by FN
smaharbA, по сравнению с тобой - я блуждающий в потемках ламер! но иногда так хочеться дойти до чего-то самому...
#28 by smaharbA
да про ужас - это про задачу вставки макроса, уж очень редки случаи, когда это надо...
#29 by NikVars
Допустим, а как мне определить по RGB его Interior.ColorIndex в палитре?
#30 by FN
Если нужен RGB то прямо его и устанавливай (последняя строка): Функция RGB(R,G,B)
#31 by NikVars
Отлично! Буду пробовать!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С