On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
Dima
администратор




Пост N: 2372
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL


Ранее с Excel из Harbour ни когда не работал.
Поставили тут задачу.
У некоторых поставщиков есть определенные формы заказов.
Набраны они в Excel. Сейчас народ руками заполняет эти формы
и шлет по электронке поставщикам.
Задача сводится к тому что бы в этих формах находить
нужные коды товара и в нужной ячейке проставлять заказ.
Может ткнет кто носом с чего начать что бы не напороться на грабли.
Спасибо
Сами формы тут http://zalil.ru/33279066

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Dima
администратор




Пост N: 4648
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 12:29. Заголовок: Неа. Неверный аргуме..


Неа.
Неверный аргумент COLORS
Ошибка WinOLE/1007
Код DOS ошибки -2147352562

Я еще пробовал ячейку красить так
oSheet:Cells(jj,2):Interior:Colors:=RGB(234,234,234) // до лампочки , все равно 25 процентов серого

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 510
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 12:31. Заголовок: странно у меня срабо..


странно у меня сработало

тестил так

oExcel:ActiveWorkbook:Colors(15, RGB(234,100,200) )
oSheet:Cells(1,1):Interior:ColorIndex:=15



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4649
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 12:45. Заголовок: Не фига тогда не пон..


Не фига тогда не понимаю ;)
 
Вот так не компилится
OExcel:ActiveWorkbook:Colors(15):=RGB(234,234,234)

и вот так не компилится
OExcel:ActiveWorkbook:Colors(15):RGB(234,234,234)


Компилится только толку ноль от такого вызова
OExcel:ActiveWorkbook:Colors(15)

Компилится , но в работе падает с ошибкой
OExcel:ActiveWorkbook:Colors(15,RGB(234,234,234) )






Спасибо: 0 
Профиль
Haz
администратор




Пост N: 511
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 12:49. Заголовок: так тоже сработало ..


так тоже сработало

oExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,100,200) )


PS. мож от версии экселя зависит ...

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4650
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 12:51. Заголовок: Haz пишет: oExcel:A..


Haz пишет:

 цитата:
oExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,100,200) )


Жесть а у меня снова ошибка ОЛИ

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4651
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 12:54. Заголовок: Вероятно дело не в H..


Вероятно дело не в Harbour а в версии EXCEL.
У меня 2003

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 512
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 13:11. Заголовок: Dima пишет: Вероятн..


Dima пишет:

 цитата:
Вероятно дело не в Harbour а в версии EXCEL.
У меня 2003



и не просто в версии , а можбыть в сборке.
На одной работает в 2003 на другой нет , на 2007 вроде везде работает



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 513
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 13:14. Заголовок: и так тоже работает ..


и так тоже работает

oExcel:Selection:Interior:Color := Rgb(240, 240, 240)

только Color , а не ColorS

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4652
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 13:16. Заголовок: Haz Получается что ..


Haz
Получается что в моем EXCEL из Harbour
я не смогу сменить 15-й ColorIndex на свой цвет




Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4653
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 13:17. Заголовок: Haz пишет: oExcel:S..


Haz пишет:

 цитата:
oExcel:Selection:Interior:Color := Rgb(240, 240, 240)


Игорь я писал выше что да такой вызов работает , но заливка получается не Rgb(240, 240, 240) а
такая же как с ColorIndex:=15

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 514
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 13:18. Заголовок: сможешь, но пока не ..


сможешь, но пока не совсем ясно как . Макрос ведь работает , значит меняет

Мож Excelсменить

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 515
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 13:21. Заголовок: Ты писал через "..


Ты писал через "S"
oSheet:Cells(jj,2):Interior:Colors:=RGB(234,234,234) // до лампочки , все равно 25 процентов серого


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 516
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.04.15 13:22. Заголовок: Сорь, я уехал ..... ..


Сорь, я уехал .....

а Excel смени

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4654
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 13:45. Заголовок: Haz пишет: Ты писал..


Haz пишет:

 цитата:
Ты писал через "S"


Да то моя очепятка на форуме. В реале без этой буквы.
Вот так Interior:Color:=RGB(234,234,234) и заливка получается БЕЛОЙ а не серый 15 %

Спасибо: 0 
Профиль
nick_mi



Пост N: 161
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 03.04.15 14:15. Заголовок: вот так получается с..


вот так получается серой только последние две ячейки
obook:sheets(1):cells(2,2):interior():color := RGB(234,234,234)
obook:sheets(1):cells(3,3):interior():color := RGB(230,230,230)
obook:sheets(1):cells(4,4):interior:color := RGB(225,225,225)
obook:sheets(1):cells(5,5):interior:color := RGB(220,220,220)
obook:sheets(1):cells(6,6):interior:color := RGB(210,210,210)

почему так - хз, наверное, Мелкософт рулит

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4655
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.04.15 16:48. Заголовок: Ладно поставим вопро..


Ладно поставим вопрос иначе ;)
Имеем макрос в EXCEL вида ActiveWorkbook.Colors(15) = RGB(234, 234, 234)
В самом EXCEL он срабатывает правильно и со цветами порядок.

Как правильно сказать Harbour что бы такой макрос заработал.
EXCEL 2003

1. OExcel:ActiveWorkbook:Colors(15):RGB(234,234,234) // Не компилится Harbour-ом
2. OExcel:ActiveWorkbook:Colors(15, RGB(234,234,234)) // Падает прога с ошибкой WinOLE/1007
3. OExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,234,234)) // Падает прога с ошибкой WinOLE/1007

Есть еще варианты ?


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4098
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.04.15 02:40. Заголовок: Haz пишет: и не про..


Haz пишет:

 цитата:
и не просто в версии , а можбыть в сборке.
На одной работает в 2003 на другой нет , на 2007 вроде везде работает


Вопрос может и не совсем в тему, но очень необходим.
А как у себя из программы узнать версию EXCEL и WinWord ?
Чтобы юзеру в красном окошке сообщить, что может случиться фигня из-за старой версии....

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4661
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.04.15 10:29. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как у себя из программы узнать версию EXCEL


? oExcel:Version // у меня 11

PS
12 - Excel 2007
11 - Excel 2003
10 - Excel 2000
и тд

Или так
Ob:= win_oleCreateObject("Scripting.FileSystemObject")
? Ob:GetFileVersion(Путь к EXCEL+"excel.exe")
Дорогу к EXCEL можно взять в теме


Спасибо: 1 
Профиль
Haz
администратор




Пост N: 517
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.04.15 12:53. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как у себя из программы узнать версию EXCEL



или вариант посложнее - WMI запрос к системе

SELECT VERSION FROM Win32_Product WHERE Caption Like '%EXCEL%'

PS. примеры WMI в минигуи ЕСТЬ

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4662
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.04.15 14:23. Заголовок: Haz пишет: или вари..


Haz пишет:

 цитата:
или вариант посложнее - WMI запрос к системе


Или так

 
OLocator:=CreateObject("wbemScripting.SwbemLocator")
oWMI:= oLocator:ConnectServer()
arr:=oWMI:ExecQuery("SELECT * FROM Win32_Product")
for each oitem in arr
if hb_at("Microsoft Office",oitem:Name)>0
if hb_at("2003",oitem:Name)>0
? 2003
elseif hb_at("2007",oitem:Name)>0
? 2007
elseif hb_at("2010",oitem:Name)>0
? 2010

endif
endif
next



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет