Как удалить строки

Статус
В этой теме нельзя размещать новые ответы.

Александр

Продвинутый
Добрый день. Есть проект расчета размеров деталей мебели со множеством условий. Созданы объекты в зависимости от использования ЛДСП (МДФ), например - корпус (тумба), ящики, полки, задняя стенка, фасады (внутренние, наружные). Также создана форма связи (Проект) куда входят все эти объекты. Максимальное количество ящиков для расчета - это 5 рядов по сверху вниз и 3 ряда слева направо, но вариантов исполнения таких комодов или просто тумб множество. Как сделать так, чтобы шаблон на печать не выводились поля со значением НОЛЬ. Например, есть тумба с 1 рядом сверху вниз и 4 рядами слева направо. Для каждого ящика два размера деталей (длина х высота и ширина х высота + количество), значит нужно создавать 45 полей в Exel для деталировки, но в данном случае будет только 16. В итоговые поля для вывода в щаблон с помощью двух переключателей ваносятся или НОЛь или значение расчета (002). На фото 003 - Это Левый ряд по вертикали и 4 ящика по горизонтали, на остальных двух рядах (отдельные вкладки) значение 0.
001.png 002.png 003.png
 
Последнее редактирование модератором:

Александр

Продвинутый
И да, на переключатель не обращайте внимание на вкладке 1-й ряд, то копия из вкладки Разделение и не всегда срабатывает, то я создал для визуальности проверки значений расчета.
 

Vladimir

Администратор
Команда форума
Добрый день, Александр.
Насколько понял - необходимо удалять строку, в которой все значения из таблицы равны нулю?
Если так, то для следующей версии у нас уже разработан механизм удаления в документе блоков по условию.
Но Ваш вопрос требует расширения функциональности, поэтому учтём эти пожелания.
 

Александр

Продвинутый
Добрый день, Александр.
Насколько понял - необходимо удалять строку, в которой все значения из таблицы равны нулю?
Если так, то для следующей версии у нас уже разработан механизм удаления в документе блоков по условию.
Но Ваш вопрос требует расширения функциональности, поэтому учтём эти пожелания.
Доброе утро. И еще вопрос по шаблону формы связей. Есть ли возмржность располагать таблицу не горизонтально, а вертикально?
 

Vladimir

Администратор
Команда форума
Нет, такой вариант формирования таблицы мы пока не рассматриваем.
 

Ирина

Модератор
Как сделать так, чтобы шаблон на печать не выводились поля со значением НОЛЬ.
Здравствуйте, Александр!
Если я Вас правильно поняла, Вам нужно чтобы в документ выводились только все заполненные поля (без значения 0). Для этого Вам нужно использовать шаблон с поддержкой макросов. А макрос будет такой:
Код:
Sub runa() ' перебор ячеек диапазона g1:g30 в поисках цифр с 0
    Dim cell As Range, delra As Range
    Application.ScreenUpdating = False

    For Each cell In Range("g1:g30").Cells
        If cell Like "0" Then ' если ячейка содержит хоть одну цифру - удаляем строку
            If delra Is Nothing Then Set delra = cell Else Set delra = Union(delra, cell)
        End If
    Next

    If Not delra Is Nothing Then delra.EntireRow.Delete
    Application.ScreenUpdating = True
End Sub

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

Но этот макрос сработает, если у вас документ на одном листе. Если листов в книге несколько и в каждом нужно удалить 0, то нужен еще дополнительный макрос с активацией всех листов. О нем в теме Подсказки при создании шаблона Excel

Макрос в документ вставить просто.
Создаете шаблон с поддержкой макросов. В шаблоне, клавишами Alt + F11, открываете Microsoft Visual Basic. В открывшемся окне выбираете вкладку Insert, а в ней Module. У Вас появится такое окно
Создание макроса.png
В это окно копируете макрос. Ничего сохранять не нужно, просто закрываете Microsoft Visual Basic.
Для проверки, вставился ли код, можете в шаблоне снова открыть Microsoft Visual Basic клавишами Alt + F11 или вместо клавиш можно открыть Visual Basic через вкладку в Excel "Разработчик", но так больше действий, да и часто сама вкладка не активирована у пользователей (активируется данная вкладка через Параметры).

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

Александр

Продвинутый
Добрый день. Немного не так, именно из шаблона форм связи. Даже если удалятся сами (не строки, а столбцы) то сама "шапка" этой таблицы останется на месте. Макросами я занимался еще лет 12-15 назад.
 

Ирина

Модератор
Так я про шаблон из форм связи и пишу.
А почему шапка останется? Для нее можно же также задать макрос на удаление по условию.
 

Александр

Продвинутый
По макросам я отстал. Что бы было понятно, Ящиков максимально в одной тумбе-комоде может быть максимально до 15 три ряда по вертиали и пять по горизонтали, а может быть тумба в один ряд по вертикали и четыре по горизонтали.
Для одного ящика идет шесть полей (четыре детали) 2 детали (длинна и высота и количество) и еще две детали (длинна и высота и количество) + толщина ДСП. Суммарно 31 поле (ячеек) + название тумбы, и ее размеры (ширина, высота и толщина ДСП) - всего 34-35 (если еще и номерацию вставить. Использоваться они все будут крайне редко и там естественно будут ноли, удалять вручную каждый раз в Exel не удобно.
 

Александр

Продвинутый
Вот доработанный проект и это только на один вертикальный ряд
 

Вложения

  • 008.jpg
    008.jpg
    109 KB · Просмотры: 18

Ирина

Модератор
По скрину проекта я Вас вроде понимаю, а вот как это выглядит в шаблоне не совсем представляю. Можете сделать скрин шаблона, выделив строки или столбцы, которые нужно будет удалить автоматически?
Спасибо
 

Александр

Продвинутый
Пока не смогу это сделать, еще сам проект сырой по этому объекту Ящики. Нужно еще начинить его такими же расчетами дна ящиков, а это уже в другом объекте, в этом вкладок не хватает.
В объекте Ящики навскидку около 200 полей и они еще не выведены на Список и вкладку в свойствах полей, немного позже сделаю
 

Александр

Продвинутый
Там еще нюанс, а если будет несколько тумб-ящиков в этом списке, а мне нужно будет удалить часть ячеек (столбца) одного из них не затронув следующую тумбу. В архиве файл с приблизительной наброской результатов експорта формы связей в Exel, но выше и ниже будут таблицы еще Тумб, Полок, этих же ящиков, Дна ящиков, Задней стенки, Фасадов ящиков, Фасадов тумб и прочего
 

Вложения

  • 01.zip
    9.4 KB · Просмотры: 1

Ирина

Модератор
В таком варианте шаблона, удалять ячейки с 0 невозможно. Тут подойдет только удаление не ячеек, а значения в них, точнее скрытия значений через условное форматирование.
Удалить ячейки или скрыть строки можно только в другом варианте таблицы, но как я поняла, такой вариант таблицы Вы не рассматриваете.
 

Вложения

  • 01-новый.zip
    22.9 KB · Просмотры: 2

Александр

Продвинутый
Добрый день. Форма связи дает возможность построения только такой вариант таблицы. Вертикальный вариант расположения таблицы не рассматривается разработчиками этого конструктора
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу