powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Pivot несколько вопросов
17 сообщений из 17, страница 1 из 1
Pivot несколько вопросов
    #36328216
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день уважаемые коллеги.
Я практически VBA не знаю, поэтому возникло несколько вопросов
1. Если таблица с данными, т.е. колонки A,B,C,D имеют различное количество строк (выгружается разное колличество сторок), как
это можно определять в макросе, что бы он брал количество строк динамически, т.е. не пустые SourceData:= R1C1:R6C4 что тут надо написать?

Как сделать шапку в сводной таблице тип шрифта жирным?
Тоже самое с под итогами
ActiveSheet.PivotTables("Svodnaya").PivotSelect "'что тут писать?'", xlDataAndLabel, True
Excel.Application.Selection.Font.Bold = True

Макрос в примере excel есть
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328301
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как
это можно определять в макросе, что бы он брал количество строк динамически
-
например
Код: plaintext
1.
2.
3.
4.
rcnt = ActiveSheet.UsedRange.Rows.Count
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C14:R" & rcnt & "C20").CreatePivotTable TableDestination:=Range("A3"), _
TableName:="PivotTable1"
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328393
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧТобы динамический диапазон сделать воспользуйтесь именами (вставка - имя - присвоить) Поищите на форуме про динамические именованные диапазоны, создайте себе такой и в исходных данных сводной таблицы напишите =ИмяДиапазона
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328483
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nemoxur
Как сделать шапку в сводной таблице тип шрифта жирным?
Тоже самое с под итогами

Код: plaintext
1.
2.
3.
4.
With ActiveSheet.PivotTables( 1 )
.RowRange.Rows( 1 ).Font.Bold = True
.ColumnRange.Font.Bold = True
.TableRange1.Rows(.TableRange1.Rows.Count).Font.Bold = True
End With
Вот так сделать жирным шапку и строку итогов, но это частный случай. нужно смотреть конкретно. Может не быть ColumnRange, может быть не одна строка итогов, это нужно учитывать.
С PivotSelect можете сами поэксперементировать, предварительно включив запись макроса и посмотреть что получается.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328722
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за подсказку про динамический диапазон, не знал что это такое,сделал, красиво работает )))

Я включал запись макроса но как сделать что бы покрасил например шапку, а не именнованый столбец? В свойствах сводной таблицы нигде не нашёл (
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328874
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nemoxur
Я включал запись макроса но как сделать что бы покрасил например шапку, а не именнованый столбец? В свойствах сводной таблицы нигде не нашёл (
С моим примером получилось покрасить или тоже нет?
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328917
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет не получилось. Мой макрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Sub mac1()
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Diapazon").CreatePivotTable TableDestination:= _
        Range("F1:F6"), TableName:="Svodnaya", DefaultVersion:= _
        xlPivotTableVersion10
    ActiveWorkbook.ShowPivotTableFieldList = True
    'Заполняем таблицу
    With ActiveSheet.PivotTables("Svodnaya").PivotFields("ФИО")
        .Orientation = xlRowField
        .Position =  1 
    End With
    With ActiveSheet.PivotTables("Svodnaya").PivotFields("Тип")
        .Orientation = xlColumnField
        .Position =  1 
    End With
    With ActiveSheet.PivotTables("Svodnaya").PivotFields("Сервис")
        .Orientation = xlColumnField
        .Position =  2 
    End With
    ActiveSheet.PivotTables("Svodnaya").AddDataField ActiveSheet.PivotTables _
        ("Svodnaya").PivotFields("Время работ"), "Сумма по полю Время работ", _
        xlSum
    ActiveWorkbook.ShowPivotTableFieldList = False
    'Оформляем таблицу
    '1
        ActiveSheet.PivotTables("Svodnaya").PivotSelect "ФИО[All]", xlLabelOnly, True
        Excel.Application.Selection.Interior.ColorIndex =  35 
        Excel.Application.Selection.Font.Bold = True 'Жирный шрифт для подписей групп
        
    '2. Общие итоги
        ActiveSheet.PivotTables("Svodnaya").PivotSelect "'Column Grand Total'", xlDataAndLabel, True
        Excel.Application.Selection.Font.Bold = True 'Жирным
        Excel.Application.Selection.Interior.ColorIndex =  40  'Цвет ячеек - светло-коричневый
        ActiveSheet.PivotTables("Svodnaya").GrandTotalName = "Общее время" 'Подпись
    '3
        ActiveSheet.PivotTables("Svodnaya").PivotSelect "'Row Grand Total'", xlDataAndLabel, True
        Excel.Application.Selection.Font.Bold = True 'Выделяем жирным




End Sub
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328937
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл не хотите приложить с примером данных и Вашим макросом? может чево подскажу на конкретном примере.
Макрос точно сократить можно и красивее сделать только лень без примера смотреть.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36328987
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл вроде как приложен в первом посте
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36329640
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NemoxurФайл вроде как приложен в первом посте
точно запамятовал
привожу код, который у меня получился, чтобы выполнить тоже что и у Вас, но мой помимо прочего не использует метод PivotSelect , который как и обычный select желательно приметь только когда ничего не осталось, имхо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Sub mac1()
    ActiveWorkbook.PivotCaches.Add(xlDatabase, "Diapazon").CreatePivotTable [F1], "Svodnaya"
 
    With ActiveSheet.PivotTables("Svodnaya")
     'Заполняем таблицу
        .PivotFields("ФИО").Orientation = xlRowField
        .PivotFields("Тип").Orientation = xlColumnField
        .PivotFields("Сервис").Orientation = xlColumnField
        .PivotFields("Время работ").Orientation = xlDataField
        .DataFields( 1 ).Function = xlSum
        .GrandTotalName = "Общее время" 'Подпись
     'Оформляем таблицу
      '1
        With .RowRange.Offset( 1 ).Resize(.RowRange.Rows.Count -  2 )
           .Font.Bold = True
           .Interior.ColorIndex =  35 
        End With
      '2. Общие итоги
        With .TableRange1.Rows(.TableRange1.Rows.Count)
           .Font.Bold = True
           .Interior.ColorIndex =  40 
        End With
      '3
        With .TableRange1.Columns(.TableRange1.Columns.Count)
           .Font.Bold = True
        End With
    End With
    
    ActiveWorkbook.ShowPivotTableFieldList = False
    
End Sub
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36329752
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NemoxurДобрый день уважаемые коллеги.
Я практически VBA не знаю, поэтому возникло несколько вопросов


Как сделать шапку в сводной таблице тип шрифта жирным?
Тоже самое с под итогами


Тож VBA не знаю, но здесь помочь можно, если экс 2007.
Вкладка - конструктор - стиль PD, делайте что хотите и сохраняйте, в дальнейшем можно применять к любой сводной, в 2010 тоже...
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330065
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то шапка по вашему макросу не получилась, только итоговый столбец, а хотелось, что бы все под итоги и вся шапка стала другим цветом и шрифт жирный.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330177
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NemoxurЧто то шапка по вашему макросу не получилась, только итоговый столбец, а хотелось, что бы все под итоги и вся шапка стала другим цветом и шрифт жирный.

Я делал, то что делает Ваш макрос.
Вы бы показали хоть раз как хотелось бы чтобы выглядело, оно бы сразу стало легче.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330183
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadNemoxurЧто то шапка по вашему макросу не получилась, только итоговый столбец, а хотелось, что бы все под итоги и вся шапка стала другим цветом и шрифт жирный.

Я делал, то что делает Ваш макрос.
Вы бы показали хоть раз как хотелось бы чтобы выглядело, оно бы сразу стало легче.

Я имею ввиду приложите один раз файл с таблицей сводной отформатированной как Вам хочется.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330305
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так хотелось бы
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330518
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Sub test()
    ActiveWorkbook.PivotCaches.Add(xlDatabase, "Diapazon").CreatePivotTable [F1], "Svodnaya"
 
    With ActiveSheet.PivotTables("Svodnaya")
     'Заполняем таблицу
        .PivotFields("ФИО").Orientation = xlRowField
        .PivotFields("Тип").Orientation = xlColumnField
        .PivotFields("Сервис").Orientation = xlColumnField
        .PivotFields("Время работ").Orientation = xlDataField
        .DataFields( 1 ).Function = xlSum
        .GrandTotalName = "Общее время" 'Подпись
     'Оформляем таблицу
      '1 подписи строк
        With .RowRange '.Offset(1).Resize(.RowRange.Rows.Count - 2) 'в данном случае не нужно
           .Font.Bold = True
           .Interior.ColorIndex =  35 
        End With
      '2 Шапка
        With .ColumnRange.Offset( 1 , - 1 ).Resize(.ColumnRange.Rows.Count -  1 , .ColumnRange.Columns.Count +  1 )
           .Font.Bold = True
           .Interior.ColorIndex =  40 
        End With
      '3 Общие итоги по столбцам
        With .TableRange1.Rows(.TableRange1.Rows.Count)
           .Font.Bold = True
           .Interior.ColorIndex =  40 
        End With
      '4 Итоги по строке
        With .TableRange1.Columns(.TableRange1.Columns.Count)
           .Font.Bold = True
        End With
    End With
   
    ActiveWorkbook.ShowPivotTableFieldList = False
    
End Sub

В любом случае это всего лишь пример, а дальше на основании него, разобравшись предварительно, вы можете заложить любой алгоритм.
...
Рейтинг: 0 / 0
Pivot несколько вопросов
    #36330933
Nemoxur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь!
Далее уж разберусь что к чему )))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Pivot несколько вопросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]