Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Формирование итоговой строки VBA
 
Не получится. Там логика в VBA.

UPD: Получилось, разобрался. Спасибо большое!
Изменено: Глазман Михаил - 06.01.2022 19:50:17 (Обновление данных)
Формирование итоговой строки VBA
 
Добрый день!

Подскажите, пожалуйста, не могу найти, вроде бы, очевидный ответ.

Необходимо при изменении/создании записи в ячейках столбцов от E до J редактировать итоговую строку, которая содержит суммы значений соответствующих столбцов. В случае, если итоговой строки ещё нет, её нужно создать на 2 строки ниже самой нижней заполненной строки. В случае добавления новой строки, итоговая строка должна опускаться вниз на одну строку.
Изменено: Глазман Михаил - 06.01.2022 19:03:00 (Добавление файла)
Выделить цветом цену, если условия поставщика соответствуют и у него минимальная цена
 
Уважаемые форумчане!
Как выделить ячейку цветом по двум условиям? Есть файл с поставщиками и их ценами. Нужно выделить цветом цену, если условия поставщика соответствуют и у него минимальная цена из предложенных.
Во вложении правильный итоговый вариант.

Знаю, что это условное форматирование, но как именно прописать формулу, догадаться не могу =(
Изменено: vikttur - 17.08.2021 09:08:12
Выгрузка иерархии в .csv файл в определённую директорию
 
Добрый день, товарищи форумчане!

Прошу помочь с решением следующей задачи: есть подготовленный файл с иерархией задач (пример во вложении). Необходимо из него выгрузить данные с определённых столбцов в определённом порядке, сохраняя при этом иерархичность, в формате .csv. в определённую директорию (место на диске).
В приведённом примере: ест общая иерархия Долги (24000000), которая состоит из долгов за коммуналку (240100), кредитные обязательства (240200) и аренду жилья (240300). Каждая позиция также подразделяется внутри себя на более детальные долги: коммуналку состоит из платы за свет (240101), за газ (240102) и за воду (240103) и т.д.
В реальной задаче строк для обработки около 7000 с пятью уровнями вложенности узлов иерархии. В каких-то узлах вложенность меньше, к примеру только две; в каких-то все семь.
Очевидно, что такая задача решается написанием макроса, однако, ввиду своих небольших знаний в области VBA самостоятельно решить задачу не получается. Прошу помочь. Файл .csv из примера также прикрепил.
Изменено: Глазман Михаил - 18.06.2018 21:08:58
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Цитата
SAS888 написал: Можно сделать проще
Очень хорошо. Всё отлично работает. Только есть непонятные моменты:
Зачем и что такое z?
Код
z.Add a(i, 1), CStr(a(i, 1))

Что означает эта строка?
Код
For i = 1 To z.Count
        [A:C].AutoFilter 3, z(i)
        With x.SpecialCells(xlCellTypeVisible).Cells(1, 1)
            .Value = Application.Subtotal(9, x)
            .EntireRow.Hidden = True
        End With
        x.SpecialCells(xlCellTypeVisible).EntireRow.Delete
    Next
Прошу прокомментировать цикл
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Цитата
Kuzmich написал: Я делал по следующей логике....
Не подойдёт — нужен макрос.
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Мной был написан следующий код:
Код
Option Explicit
Private Sub Merge()

    Const strOtherOutside As String = "Прочий внешний"
    Dim i1 As Integer 'количество строк на листе
    Dim j As Integer 'счётчик строк на листе
    Dim sngSubOtherOutside  As Single 'подытоги по контрагенту Прочий внешний
    
    'Склейка по контрагенту Прочий внешний
    With Worksheets("Данные")
        i1 = 0
        While .Cells(i1 + 1, 3).Value <> ""
            i1 = i1 + 1
        Wend
        sngSubOtherOutside = 0
        For j = i1 + 1 To 3 Step -1
            If .Cells(j, 3).Value = .Cells(j - 1, 3).Value Then
                If .Cells(j, 1).Value = strOtherOutside Then
                    sngSubOtherOutside = sngSubOtherOutside + .Cells(j, 2).Value
                    .Rows(j).Delete
                End If
            Else
                Rows(j).Insert shift:=xlDown
                .Cells(j, 1) = strOtherOutside
                .Cells(j, 2) = sngSubOtherOutside
                .Cells(j, 3) = .Cells(j - 1, 3)
            End If
        Next
    End With
    
End Sub
Логика следующая: сначала я считаю количество непустых строк, тем самым в переменную i1 подставляется размер таблицы. Затем снизу таблицы я начинаю построчный обход третьего столбца до тех пор, пока не встречу разные значения, а тем временем если в первом столбце встречается "Прочий внешний", то в переменную sngSubOtherOutside записываются значения третьего столбца и эта строка удаляется. Если в третьем столбце значение меняется, то происходит создание новой строки, в которую записываются: в первый столбец "Прочий внешний", во второй значение переменной sngSubOtherOutside, а в третий значение из третьего столбца. Но тем не менее, программа почему-то выдаёт не верный результат. Почему?
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Да, увидел. Обсчитался.  Но вопрос тем не менее был не в этом.
Изменено: Глазман Михаил - 13.12.2016 19:47:15 (Грамматическая ошибка)
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Цитата
Kuzmich написал:
У меня получилось по Контрагент - Прочий внешний с Номер строки=360 сумма=249 , а у вас 270.
А что это меняет? Должно быть 249. 270 там не от куда взяться.
Объединение ячеек при одинаковом значении в столбце, макрос для склейки строк в определённом интервале
 
Добрый день! Необходима помощь в решении следующей задачи: есть таблица в MS Excel. В первом столбце указано название организации, во втором сумма по хоз.деятельности, третья служебная. Необходимо выполнить следующий макрос: при одинаковом значении третьего столбца склеить все строки, в пером столбце которых написано "Прочий внешний", а во втором посчитать сумму по второму столбцу. Результат выполнения макроса представлен на втором листе файла во вложении. Изначальная таблица на первом листе. очень надеюсь на вашу помощь. Заранее спасибо.
Страницы: 1
Наверх