Подсчёт данных (макрос из Excel)

Автор Рамик, 7 июля 2025, 16:14

0 Пользователи и 1 гость просматривают эту тему.

Рамик

Добрый день ! Помогите!! Офис перевели  на libreoffice.
Макрос из exel и его надо переделать под libreoffice


Dim d As Object, arr, title, item As String, key As String, s
Dim i As Long, j, lr As Long

Set d = CreateObject("Scripting.Dictionary")

With Worksheets("Список зачистки") '
    title = .Cells(1, 1).CurrentRegion.Rows(1).Value
    arr = .Cells(1, 1).CurrentRegion.Value
   
    For i = 2 To UBound(arr, 1)
     If Format(arr(i, 1), "mmmm") = Лист3.ComboBox1.Text Then
        key = Format(arr(i, 1), "mm.yyyy") & ":" & arr(i, 2)
        If d.exists(key) Then
            d(key) = d(key) + arr(i, 3)
        Else
            d(key) = arr(i, 3)
        End If
     End If
    Next i
End With



sokol92

Здравствуйте!
Ваш макрос используется для "ручного" построения сводной таблицы.
Гораздо проще это сделать встроенными методами (и к Excel это тоже относится).
См. вложенный файл.
Владимир.

Рамик

Мне надо как у меня есть , так как не я один пользуюсь и необходимо сразу чтоб обновлялось список. Вариант макросовский . Мне остался только код который отправил вам , перевести , остальное я уже сделал

bigor

Поддержать наш форум можно здесь

Рамик

Мне это ничего не дает , можете код перевести на Libre , я не знаком с ним . Пожалуйста !

Рамик

Здравствуйте ! Все сделал как у вас , проблема как вы сделали фильтр по месяцам и годам ? Спасибо !

sokol92

#6
На примере Вашего файла.

1. Проверяем, что данные в столбце A листа Список являются датами (на самом деле - числами), а не текстами. Самое простое для этого - Меню / Вид / включить "Подсветка значений". Числа (в частности, даты) будут отображаться синим цветом. Если есть тексты, то их нужно переделать в числа (даты) - материалов, как это сделать, много.

2. Для настройки группировки сначала заходим в свойства Сводной табюлицы и передвигаем Дату в поле строк сводной таблицы (временно!) и обновляем сводную таблицу. Затем выбираем любую ячейку сводной таблицы, содержащую дату и
Меню / Данные / Группа и структура / Группировать.
В списке "Интервалы" отмечаем галочками Месяцы и Годы, OK.

Возвращаемся в свойства Сводной таблицы и в списке полей видим поля Дата (это теперь месяцы) и Годы. Осталось теперь убрать Дату из области строк и поставить Годы и Дата в область фильтра.

Пробуйте!
Владимир.

Рамик

Спасибо большое ! Выручили !Распект вам!!!! :beer: