Страницы: 1
RSS
Скрытие строк по условию в диапазоне
 
Доброго времени суток, уважаемые магистры!

Столкнулся с необходимостью пользоваться БД, но сам не сильно умен в экселе, поэтому буду очень благодарен, если кто-то найдет возможность мне помочь.

Итак, дано:

Есть шаблон, который формируется из 5 массивов, в которые я вношу информацию руками. Далее из шаблона уже собирается база данных в нужном формате (Лист формат). Файл во вложении, конечно, форма там бесконечно упрощенная, схематично все, но суть отражает. Традиционно, далеко не всегда массивы заполняются, поэтому возникает нужда скрывать пустые строки. К сожалению, я не сумел достичь нужного результата, и очень прошу вашей помощи. Чего хотелось бы достичь: иметь кнопку с макросом, который скрывает пустые строки и раскрывает их обратно, если стока заполняется.Так же я буду благодарен за ваши рекомендации по оптимизации.

По файлу: Лист (БД) - тут у нас шаблон непосредственно (А1;U225) и 5 массивов (полагаю, было бы разумнее их вынести на отдельный лист).
А223- данные по городам, они всегда разные, но всего их более 50.
(v1;z1) - данные по продуктам. Они маленькие, но их много достаточно может быть. И как обычно, какие-то не всегда нуждаются в том, чтобы их посчитали, но они обязательно появятся позже.

Логично, что в случае, если не заполнен хотя бы один, то в форме возникают пустоты, это же и с городами.
Массивы по товарам достаточно проверить по столбцу "Товар N". Если там 0, то надо скрывать строки. В общем, думаю, что таких подробностей оно не стоит, но я лишь для вашего удобства. Конечно, БД нужного формата тоже сразу обретает пустые строки. Но полагаю, что ее можно собирать таким способом, когда она бы формировалась сама "по-умному", но я не знаю таких методов, поэтому линкую.

Заранее благодарен всем неравнодушным, спасибо!
 
VvvV, зайдите в свой профиль и поменяйте отображаемое имя (логин).
 
Цитата
Юрий М написал:
VvvV , зайдите в свой профиль и поменяйте отображаемое имя (логин).
Вроде поменял, а чем то было плохо?)
 
Привет!
Цитата
VvvV написал:
по столбцу "Товар N". Если там 0, то надо скрывать строки.
У Вас два листа,, на обоих есть столбец "Товар" и в обоих нет 0. Скрывать нечего. Задача выполнена, с Вас лайк.
Сравнение прайсов, таблиц - без настроек
 
Цитата
LeonidSNM написал:
поменял, а чем то было плохо?
Само по себе, может, и не плохо на других сайтах, но имеем нарушение пункта 3.2 наших Правил.
 
Юрий М, простите, виноват, исправился) больше не буду нарушать)

Цитата
Inexsu написал: У Вас два листа,, на обоих есть столбец "Товар" и в обоих нет 0. Скрывать нечего. Задача выполнена, с Вас лайк.
Приветствую, Ваша правда) где лайки тут ставят?))

Внес уточнения, прикладываю) если кто-то заинтересуется, буду благодарен)
 
В модуль листа "База исходная" поместите код
Код
Private Sub Worksheet_Activate()
    Dim x As Range: Application.ScreenUpdating = False
    Rows.Hidden = False: Set x = [A3].MergeArea
    Do While x.Rows.Count = 12
        If Application.Sum(Intersect(x.EntireRow, [C:U])) = 0 Then
            x.EntireRow.Offset(-1).Hidden = True
            x.EntireRow.Hidden = True
            x.EntireRow.Offset(1).Hidden = True
        End If
        Set x = x.Offset(3).MergeArea
    Loop
End Sub
При активации этого листа, все строки блоков, в которых нет ни одного значения будут скрыты.
При заполнении листа "Лист ввода данных", на который ссылаются Ваши формулы на листе "База исходная", значения будут появляться, и, соответственно, при следующей активации листа базы, строки этих блоков будут отображаться.
Кстати, заполните требуемыми формулами все ячейки на листе "База исходная". Сейчас у Вас в "пустых" блоках эти ячейки не содержат формул.
Пример во вложении.
Чем шире угол зрения, тем он тупее.
 
SAS888, Безгранично благодарен,  огромнейшее спасибо Вам за такое рещение и за помощь!
Страницы: 1
Наверх