Код |
---|
Sub МАКС() ' If Worksheets("Макс").PivotTables.Count > 0 Then Worksheets("Макс").PivotTables("Свод").TableRange2.Clear End If Dim ra As Range, delra As Range, ТекстДляПоиска As String Application.ScreenUpdating = False ' отключаем обновление экрана ТекстДляПоиска = "Комплекты" ' удаляем строки с таким текстом ' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then ' добавляем строку в диапазон для удаления If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - удаляем их If Not delra Is Nothing Then delra.EntireRow.Delete With ActiveSheet .Range("E3:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).ClearContents .Range("E2:F2").AutoFill .Range("E2:F" & .Cells(.Rows.Count, "D").End(xlUp).Row) ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Макс!R1C4:R1048576C6", Version:=6).CreatePivotTable _ TableDestination:="Макс!R2C9", TableName:="Сводная таблица", DefaultVersion:=6 Sheets("Макс").Select Cells(2, 9).Select With ActiveSheet.PivotTables("Сводная таблица").PivotFields("Вид тары") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("Сводная таблица").AddDataField ActiveSheet. _ PivotTables("Сводная таблица").PivotFields("Количество"), _ "Количество по полю Количество", xlCount With ActiveSheet.PivotTables("Сводная таблица5").PivotFields( _ "Количество по полю Количество") .Calculation = xlPercentOfTotal .NumberFormat = "0,00%" End With ActiveCell.Offset(1, -1).Range("A1").Select ActiveCell.FormulaR1C1 = _ "=IFERROR(VLOOKUP(Calculation!R[8]C[-7],'Макс'!C[1]:C[2],2,0),0)" ActiveCell.Select Selection.AutoFill Destination:=ActiveCell.Range("A1:A21"), Type:= _ xlFillDefault ActiveCell.Range("A1:A21").Select Selection.Copy Sheets("Calculation").Select End Sub |
Макрос для удаления лишних строк. Ошибка Expected end with
Выгрузка из Outlook
График командировок
18.02.2017 18:50:12
Всем привет многоуважаемые гуру екселя! Необходимо на основании исходных подставить в таблицу символ с привязкой к дате и этот символ закрасить в любой цвет. В файлике прикладываю то как это должно выглядеть. Пробовал сводные, условное форматирование, различные формулы, все мимо. Единственная надежда на макрос, но нет понимания как вышеуказанную процедуру записать через макрекодер для дальнейшего редактирования. С языком VBA пока что на "Ваше величество"( не прошу сделать готовый вариант, подскажите хотя бы направление.
Спасибо!! |
|
|
Обновление данных в сводной таблице
30.01.2017 16:46:40
Много чего получилось победить самому что-то подсказывали на форуме, но обновление сводной никак не поддается. Пробовал подставлять различные варианты которые находил, но либо макрос работает некорректно либо ошибки. Есть вариант записать макрос через макрекордер с обновлением, но в таком случае при удалении строк область для обновления уменьшается на количество удаленных срок. Единственное что получилось это жестко привязать обновление к файлу, но это не вариант. накидаете ссылок или помогите советом. Макрос удаляет лишние строки, обновляет столбцы с формулами, полученный результат должен обновится в своде и после исходные данные копируются на следующий лист
Изменено: |
|||
|
Как макросу протянуть нужное колличество строк формул
20.01.2017 10:56:51
Всем привет, ребята нужна ваша помощь, никак не получается решить уверен пустяковую проблему. В колонки A-D (зеленые) вставляются исходные данные, затем маркрос удаляет все ненужное. Количество строк в исходных данных всегда разное.Тут и начинается самое интересное в колонках E-J (желтые), записаны различные формулы которые необходимо протянуть по вему массиву колонок A-D, чтобы в итоге получилась автосумма в колонке K. Никак не могу научить макрос протягивать нужное колличество строк. Если появляются лишние протянутые строку автосумма не считается. Возможно все формулы в желтых колонках можно записать в макрос, но это для меня космос...
|
|
|