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




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


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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 130 , стр: 1 2 3 4 5 6 7 All [только новые]


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




Пост N: 8299
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.05.26 18:18. Заголовок: Softlog86 пишет: а ..


Softlog86 пишет:

 цитата:
а как вернуть назад реагирование на ESC ?


oExcel:Application:OnKey( "{ESC}")

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8300
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.05.26 18:31. Заголовок: Softlog86 пишет: Вс..


Softlog86 пишет:

 цитата:
Встречный вопрос - и чтоб нельзя было закрыть Эксель по крестику на окне ?
(он то виден ) - или вообще убрать там и Minimize/Maximize


интересно как пользователь тогда завершит работу окна Excel ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8302
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.05.26 19:00. Заголовок: насчет крестика копн..

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 418
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 26.05.26 13:12. Заголовок: Вдогонку . Дайте син..


Вдогонку .
Дайте синтаксис как в объекте oEXCEL (лист oWSheet) :

1) узнать адрес активной ячейки nRow , nCOL
2) установить активной ячейку c координатами nROW , nCOL

3) выделение всей строки nROW
4) выделение всего столбца nCOL
5) выделение определенной ячейки nROW , nCOL

идея - в своей программе меняя координаты - на листе документа тут же отображать (выделять) ячейку с этими координатами .

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8318
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.05.26 13:47. Заголовок: 1. if hb_isobjec..


1.
 
if hb_isobject(oExcel:ActiveCell)
? oExcel:ActiveCell:Row
? oExcel:ActiveCell:Column
? oExcel:ActiveCell:Value
endif

2. Возможно так
oSheet:Cells( 2, 1 ):Activate()


5.
oSheet:Cells( 2, 1 ):select()

Дальше сам...

Спроси ИИ в гугл

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8319
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.05.26 16:42. Заголовок: по поводу 3 и 4 нужн..


по поводу 3 и 4
нужно вычислить сколько столбцов и колонок используется в отчете
a:=oSheet:UsedRange:Rows:Count
b:=oSheet:UsedRange:Columns:Count

а далее имея эти значения юзаем Range и Select

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 419
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 26.05.26 20:00. Заголовок: oExcel:ActiveCell:En..


oExcel:ActiveCell:EntireRow:Select()
Но , что-то не выделяет ..... или слепой я
А не , выделяет . Просто у меня сразу фокус возвращается из Экселя в программу и не видно рамочку :)

как то нужно придумать чтоб чётче выделялось ... но не цветом заливки ячеек . тот файл нельзя трогать . только смотреть .
ИИ помог :
ActiveCell:EntireColumn:Interior:Color =
ActiveCell:EntireRow:Interior:Color =

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8320
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.05.26 20:23. Заголовок: Softlog86 пишет: не..


Softlog86 пишет:

 цитата:
не видно рамочку :)


сделай рамочку цветом или еще как ,но она останется там жить...
проще Select ,раз файл трогать нельзя...возможно есть что то другое, не копал

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8321
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.05.26 20:27. Заголовок: Softlog86 пишет: Пр..


Softlog86 пишет:

 цитата:
Просто у меня сразу фокус возвращается из Экселя в программу и не видно рамочку :)


сделай Showexcel(oExcel)

 
Func Showexcel(ex)
local hWnd

hWnd := Ex:hWnd
ShowWindow(hWnd, 3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop(hWnd)

return nil


#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
#include "hbapiitm.h"

HB_FUNC( BRINGWINDOWTOTOP )
{
BringWindowToTop( ( HWND ) hb_parnl( 1 ) );
}





#pragma ENDDUMP



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8322
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.05.26 20:42. Заголовок: Softlog86 пишет: ИИ..


Softlog86 пишет:

 цитата:
ИИ помог :


вот и чудно

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8323
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.05.26 08:14. Заголовок: Softlog86 пишет: т..


Softlog86 пишет:

 цитата:
тот файл нельзя трогать . только смотреть


поставь пароль на лист и все
oSheet:Protect("Harbour:)")

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 420
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 27.05.26 11:05. Заголовок: Dima пишет: поставь..


Dima пишет:

 цитата:
поставь пароль на лист и все
oSheet:Protect("Harbour:)")


Разумеется , я так и сделал :)

Теперь новая идея :)
Как организовать показ своего окошка сообщения при открытии файла .XLS ?
Я туда хочу поместить информацию , например легенду с указанием цвета ячеек , соответствующих определенным свойствам :
"не найдено" , "изменено" , "новое" и т д ....

на вскидку - есть функция MsgBox в VBA (Excel) .
(только не могу пока найти правильный синтаксис для вызова этой функции ....)

Ну или подскажите другой способ/идею как это организовать .

Всем хорошего дня !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8324
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.05.26 12:32. Заголовок: окошко можно сделать..


окошко можно сделать в Harbour
wapi_MessageBoxTimeOut
а так танцы с бубном на счет Msgbox и подобных через вызовы типа
oExcel:Run( "Evaluate"...
oExcel:Evaluate(..
oExcel:ExecuteExcel4Macro(..
ни к чему не привели

кнопку например сделать можно и на ней чего написать...далее не копал так как не надо было

ЗЫ
Еще вариант показа
contrib\hbwin\tests\dlg.prg

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8325
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.05.26 20:17. Заголовок: Softlog86 как дела ..


Softlog86
как дела ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 388
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.06.26 10:03. Заголовок: Softlog86 пишет: Ну..


Softlog86 пишет:

 цитата:
Ну или подскажите другой способ/идею как это организовать .


есть встроенные события при открытии книги или активации листа, погугли это стандартные вещи...
Пример кода:
Private Sub Workbook_Open()
Application.WindowState = xlMaximized
End Sub

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8326
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.06.26 13:40. Заголовок: MIKHAIL Покажешь ка..


MIKHAIL
Покажешь как использовать подобный код в Harbour ?
Я так понимаю через вызов макроса....
Как то игрался и ни чего не получилось.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 389
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.06.26 16:30. Заголовок: Dima пишет: Покажеш..


Dima пишет:

 цитата:
Покажешь как использовать подобный код в Harbour ?


Ну на сколько я понимаю, это внутренние события Excel, они происходят при определенных действиях и выполняются например, как в примере ранее, при открытии книги или иных стандартных событиях..., они хранятся в VBA разделе книги. Как запустить какой то VBA скрипт из книги через Харбор я не разбирался, но вероятно он есть...
можно посмотреть тут https://learn.microsoft.com/ru-ru/office/vba/api/Excel.Application.Run
У меня был опыт по написанию VBA скриптов, а данные предварительно я готовил в Харбуре, и пользователь работая с книгой, получал какой то интерактив, например скачивал и открывал картинки с сайта, масштабировал их, получал онлайн данные для тех данных что есть в таблице и обрабатывал их каким то образом, вообще VBA дает хороший простор для фантазии, единственное что ограничивает распространение таких проектов широкому кругу пользователей - это отсутствие доверенного сертификата на свои проекты...

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 390
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.06.26 17:05. Заголовок: Dima бегло глянул, п..


Dima бегло глянул, пишут что это интерфейсные события, поэтому напрямую их вызвать нельзя, они сами сработают когда ты программно создашь такое действие, например откроешь книгу или активируешь лист, смотря какое событие требуется... Формализуй задачу, что бы было понятней, чего добиться нужно...
Я помню как то ранее ты интересовался как отправлять заказы от разных клиентов тебе в базу, это можно прямо из интерфейса Excel сделать, интерактивно, по каждой позиции, еще и доп информацию получать из базы если она нужна ...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8327
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.06.26 17:10. Заголовок: MIKHAIL пишет: Appl..


MIKHAIL пишет:

 цитата:
Application.WindowState = xlMaximized


сразу в Harbour
oExcel:WindowState :=xlMaximized //-4137

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8328
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.06.26 17:14. Заголовок: MIKHAIL пишет: Форм..


MIKHAIL пишет:

 цитата:
Формализуй задачу, что бы было понятней, чего добиться нужно...


Смотри, создал средствами Harbour кнопку в Excel.
Далее надо повесить некую процедуру на нажатие кнопки , допустим
это будет некий Alert или Msg.
Я было пытался подгрузить макрос такой из строки...но сколько не бился
ни чего не получилось и бросил это дело

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 130 , стр: 1 2 3 4 5 6 7 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 167
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет