Имя: Пароль:
1C
1С v8
Программные группировки в Экселе из 1С
0 mzelensky
 
20.03.12
09:25
Доброго времени суток!
В экселе существует функция группировок строк и колонок (указанный диапазон можно сворачивать и разворачивать через кнопочку "+"). Вопрос - как программно (из под 1С через ком-объект) создать такие группировки определенных колонок???

П.С. понятно, что должна быть какая-то элементарная команда, но вопрос чисто в синтаксисе...
1 ДенисЧ
 
20.03.12
09:26
Макросы в екселе научить записывать?
2 mzelensky
 
20.03.12
09:32
(1) научи! Еще не приходилось.
3 mzelensky
 
20.03.12
09:41
ап???
4 Wobland
 
20.03.12
09:46
(0) как группировка по-английски будет?
5 dk
 
20.03.12
09:47
(2) стыдно должно быть однако
открываешь ексель
в 2007-м Вид - Макросы - Начать запись
группируешь или еще что-нить делаешь
Вид - Макросы - Остановить запись
----
Чтобы посмотреть что записалось Вид - Макросы - Макросы - изменить
6 mzelensky
 
20.03.12
09:56
(5) Ок, а как это из 1С сделать?
7 mzelensky
 
20.03.12
09:57
(4) "group".

А дальше???
8 mzelensky
 
20.03.12
10:08
(1) (4) (5) народ, ну что за привычка говорить "А" и не договаривать "Б"...и даже не придирайтесь к тому, что я "не так вопрос поствил в (0)". Я спросил - "как программно (из под 1С через ком-объект) создать такие группировки определенных колонок"  - ключевая фраза "программно (из под 1С через ком-объект)" ???
9 dk
 
20.03.12
10:09
(6) Через OLE объект
только надо хоть немного разобраться в объектной модели Excel, потому что макрос записывается в контексте открытого эксель, а в OLE надо будет этот контест задать
----
Если совсем нуб в екселе - была где-то обработка которая текст макроса в код для 1с конвертит
10 Buster007
 
20.03.12
10:11
(6) после того как ты запишешь макрос и нажмешь кнопку изменить, то пред тобой откроется путь к истине ) ты увидишь код, который делает группировку, а потом можно его скопировать в 1С, подправить чуть-чуть и будет тебе счастье )
11 dk
 
20.03.12
10:12
в поиск не помешает сходить - готовые примеры поглядеть
Книга знаний: Чтение и запись текущего листа Excel из 1С 7.7
12 mzelensky
 
20.03.12
10:15
(11) а это тут причем? там ток чтение/запись инфы в Эксель...эт я умею
13 Tatitutu
 
20.03.12
10:19
Range(Cells(10, 1), Cells(17, 1)).Select
Selection.Rows.Group
14 Wobland
 
20.03.12
10:19
(12) ты уже увидел код в екселе, который тебе всё группирует?
15 mzelensky
 
20.03.12
11:33
В итоге нашел как работать с макросами, вроде получилось сделать группировку, но еще один ньюанс. Макрос выдал мне код:

Columns(""A:G"").Select
Selection.Columns.Group

т.е. область задается буквенными показателями. Сделать как в (13) не удалось - выдает ошибку синтаксиса. Как переделать на

Range(Cells(10, 1), Cells(17, 1)).Select ?
16 mzelensky
 
20.03.12
12:02
???
17 mzelensky
 
20.03.12
12:15
(13) ну подскажи еще чуток
18 Wobland
 
20.03.12
12:27
(15) а как ты хочешь так группировать? только с 10й по 17ю строки в первой колонке? не могу представить
19 sanja26
 
20.03.12
12:29
Вместо Cells - row..
20 mzelensky
 
20.03.12
12:47
(19) почему "row" ? "row" это же строки...
21 mzelensky
 
20.03.12
12:50
(18) нет я хочу группировать колонки с 1 по 10  (например)
22 Wobland
 
20.03.12
12:50
(20) ну-ка удали (20) ;)
23 Wobland
 
20.03.12
12:50
(21) примени группировку целиком к столбцу
24 mzelensky
 
20.03.12
12:53
(21)

Я и применил к столбцу:

Columns(""A:G"").Select

Номне нужно не буквами ,а цифрами...пробовал так:

Range(Cells(1, 1), Cells(1, 7)).Select

Т.е. я хочу выделить 7 колонок, но как-нибудь через цифровые параметры, т.к. через буквенные мне не удобно переводить
25 sanja26
 
20.03.12
13:01
Пробел вместо первого параметра не пробовал?
26 mzelensky
 
20.03.12
13:05
(25) не пробовал...
27 Tatitutu
 
20.03.12
13:06
Range(Cells(1, 1), Cells(1, 7)).Select
Selection.Columns.Group
28 mzelensky
 
20.03.12
13:13
(27) блин, извиняюсь...тупанул... "Select" не туда вставил :)

Все, заработало - СПАСИБО!!!