если ниже строк, которые нужно группировать ничего нет, то можно немного схитрить :) [vba]
Код
Sub ddd() With Application: .EnableEvents = 0: .ScreenUpdating = 0 With ActiveSheet With .Outline .AutomaticStyles = False .SummaryRow = xlAbove .SummaryColumn = xlRight End With .Cells.Replace "Итого", "=all1", 1 With [all1].Dependents .Value = "Итого" For Each col In .Cells(1, 1).Resize(Rows.Count - .Row, _ Intersect(.EntireColumn, .EntireRow).Columns.Count).Columns With col.SpecialCells(xlCellTypeConstants, 23) For Each ar In .ColumnDifferences(.Cells(1)).Areas ar.EntireRow.Group Next End With Next End With End With .EnableEvents = 1: .ScreenUpdating = 1: End With End Sub
[/vba]
если ниже строк, которые нужно группировать ничего нет, то можно немного схитрить :) [vba]
Код
Sub ddd() With Application: .EnableEvents = 0: .ScreenUpdating = 0 With ActiveSheet With .Outline .AutomaticStyles = False .SummaryRow = xlAbove .SummaryColumn = xlRight End With .Cells.Replace "Итого", "=all1", 1 With [all1].Dependents .Value = "Итого" For Each col In .Cells(1, 1).Resize(Rows.Count - .Row, _ Intersect(.EntireColumn, .EntireRow).Columns.Count).Columns With col.SpecialCells(xlCellTypeConstants, 23) For Each ar In .ColumnDifferences(.Cells(1)).Areas ar.EntireRow.Group Next End With Next End With End With .EnableEvents = 1: .ScreenUpdating = 1: End With End Sub
Strateg_ru, а сводная не подойдет? в файле сделал 2 варианта 1 - с помощью сводной 2 - подключение к внешним данным + макрос для обновления строки подключения
Strateg_ru, а сводная не подойдет? в файле сделал 2 варианта 1 - с помощью сводной 2 - подключение к внешним данным + макрос для обновления строки подключенияkrosav4ig
Sub dd() Dim col As Range, ar As Range With Application: .EnableEvents = 0: .ScreenUpdating = 0 For Each col In [A8:F27].Columns With col.SpecialCells(xlCellTypeConstants, 23) For Each ar In .ColumnDifferences(.Cells(1)).Areas ar.EntireRow.Group Next End With Next .EnableEvents = 1: .ScreenUpdating = 1: End With End Sub
[/vba]
Добрый вечер. Исчо вариант [vba]
Код
Sub dd() Dim col As Range, ar As Range With Application: .EnableEvents = 0: .ScreenUpdating = 0 For Each col In [A8:F27].Columns With col.SpecialCells(xlCellTypeConstants, 23) For Each ar In .ColumnDifferences(.Cells(1)).Areas ar.EntireRow.Group Next End With Next .EnableEvents = 1: .ScreenUpdating = 1: End With End Sub
Sub export2() Dim rng With CreateObject("Word.Application") .Visible = True With .Documents.Add.Sections(1).Headers(1) With .Range.document.tables.Add(Range:=.Range, NumRows:=3, _ NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:=wdAutoFitFixed) Set rng = .Cell(2, 2).Range rng.End = .Cell(2, 3).Range.End rng.Cells.Merge End With End With .Activate End With End Sub
[/vba]
Здравствуйте, а у мну вот так [vba]
Код
Sub export2() Dim rng With CreateObject("Word.Application") .Visible = True With .Documents.Add.Sections(1).Headers(1) With .Range.document.tables.Add(Range:=.Range, NumRows:=3, _ NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:=wdAutoFitFixed) Set rng = .Cell(2, 2).Range rng.End = .Cell(2, 3).Range.End rng.Cells.Merge End With End With .Activate End With End Sub
, потому, что все значения в 'журнал прихода'!$J$3:$J$7705 числовые, а в 'журнал прихода'!$I$3 - текстовое значение (пустая строка ""), она и вызывает ошибку при попытке умножения вот тут
вообще только ссылки на ячейки с заголовками столбцов и, соответственно, та же ошибка (умножение текстового значения) в добавок, в Таблица4[Дата] у вас даты записаны текстом, их нужно преобразовать в число или в формуле писать
Код
--Таблица4[Дата]
слепил обе формулы в 1
Код
=ЕСЛИ(G$4=H$4;СУММПРОИЗВ((0&Таблица2[[Вес материала на весовой, т.]:[Вес материала на весовой, т.]])*(Таблица2[[Поставщик]:[Поставщик]]=$C8)*(Таблица2[[Дата]:[Дата]]=G$4)*(Таблица2[[Номенклатура]:[Номенклатура]]=$B8));СУММПРОИЗВ(Таблица4[[Общее кол-во]:[Общее кол-во]]*(Таблица4[[Наименование]:[Наименование]]=$B8)*(--Таблица4[[Дата]:[Дата]]=G$4)))
, потому, что все значения в 'журнал прихода'!$J$3:$J$7705 числовые, а в 'журнал прихода'!$I$3 - текстовое значение (пустая строка ""), она и вызывает ошибку при попытке умножения вот тут
вообще только ссылки на ячейки с заголовками столбцов и, соответственно, та же ошибка (умножение текстового значения) в добавок, в Таблица4[Дата] у вас даты записаны текстом, их нужно преобразовать в число или в формуле писать
Код
--Таблица4[Дата]
слепил обе формулы в 1
Код
=ЕСЛИ(G$4=H$4;СУММПРОИЗВ((0&Таблица2[[Вес материала на весовой, т.]:[Вес материала на весовой, т.]])*(Таблица2[[Поставщик]:[Поставщик]]=$C8)*(Таблица2[[Дата]:[Дата]]=G$4)*(Таблица2[[Номенклатура]:[Номенклатура]]=$B8));СУММПРОИЗВ(Таблица4[[Общее кол-во]:[Общее кол-во]]*(Таблица4[[Наименование]:[Наименование]]=$B8)*(--Таблица4[[Дата]:[Дата]]=G$4)))
Ну это ж совсем другое дело ПКМ по A1 на листе исходник > Обновить > выбираете ваш txt файл>импорт>на листе результат протягиваете формулы внизkrosav4ig
Перевложил файл в сообщении № 9 однако, что-то странное творится, в Excel 2007 на хрюше работал, в 2010 на 7-ке ни в какую... для работы нужно включить макросы
Перевложил файл в сообщении № 9 однако, что-то странное творится, в Excel 2007 на хрюше работал, в 2010 на 7-ке ни в какую... для работы нужно включить макросыkrosav4ig