Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2013, 10:42   #1
PTO
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию Как правильно отфильтровать данные в табличке?

Подскажите, как сделать правильно фильтрацию или выборку данных из таблички, см. вложение Таблица Комплектация.rar.

В результате, после заполнения и фильтрации таблички нужно, чтобы остались только: строчка раздела и то, что заполнено ниже раздела.
Если в разделе ничего не заполнено - в итоговой табличке быть не должно ни раздела ни строчек таблички.
PTO вне форума Ответить с цитированием
Старый 14.05.2013, 09:16   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

PTO, если средствами самой программы "Excel" нельзя сделать то, что вы хотите, то можно попробовать сделать макрос.
Скрипт вне форума Ответить с цитированием
Старый 14.05.2013, 11:02   #3
NewStudent07
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 27
По умолчанию

Код:
Sub Macros_01()
'Если предположить, что Вы не будете добавлять новые/удалять старые строки в таблицу, то этот макрос будет работать на ура,
'но если будете, то его надо будет коректировать
Dim i As Long
Dim a As String
'Создаем дуликат таблицы, который будет основой для итоговой таблицы
Sheets("Лист1").Copy Before:=Sheets(1)
'Задаем нашему дубликату имя
a = InputBox("Введите имя итогоовой таблицы", , "Итоговая таблица")
ActiveSheet.Name = a

'Отключаем мерцание екрана
Application.ScreenUpdating = False

'Проверяем есть ли записи в разделе "Полы",
'Если нет, то этот раздел удаляем
If Range("D46").Value = "" And Range("D45").Value = "" And Range("D44").Value = "" And Range("D43").Value = "" And _
    Range("D42").Value = "" Then
    Range("B41").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Конструкции встроенных помещений, вставки, ограждения",
'Если нет, то этот раздел удаляем
If Range("D40").Value = "" And Range("D39").Value = "" And Range("D38").Value = "" And Range("D37").Value = "" And _
    Range("D36").Value = "" And Range("D35").Value = "" And Range("D34").Value = "" And Range("D33").Value = "" And _
    Range("D32").Value = "" Then
    Range("B31").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Грузоподъемные механизмы и конструкции",
'Если нет, то этот раздел удаляем
If Range("D30").Value = "" And Range("D29").Value = "" And Range("D28").Value = "" And Range("D27").Value = "" Then
    Range("B26").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Ограждение проемов",
'Если нет, то этот раздел удаляем
If Range("D25").Value = "" And Range("D24").Value = "" And Range("D23").Value = "" And Range("D22").Value = "" And _
    Range("D21").Value = "" And Range("D20").Value = "" And Range("D19").Value = "" And Range("D18").Value = "" And _
    Range("D17").Value = "" Then
    Range("B16").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Ограждающие конструкции",
'Если нет, то этот раздел удаляем
If Range("D15").Value = "" And Range("D14").Value = "" And Range("D13").Value = "" And Range("D12").Value = "" Then
    Range("B11").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Конструкции каркаса",
'Если нет, то этот раздел удаляем
If Range("D10").Value = "" And Range("D9").Value = "" Then
    Range("B8").EntireRow.Delete
End If

'Проверяем есть ли записи в разделе "Рабочая документация",
'Если нет, то этот раздел удаляем
If Range("D7").Value = "" And Range("D6").Value = "" And Range("D5").Value = "" Then
    Range("B4").EntireRow.Delete
End If
'Удаляем пустые строки внутри каждого раздела
    For i = 46 To 4 Step -1
        If Cells(i, 3).Value <> "" And Cells(i, 4).Value = "" Then
            Cells(i, 4).EntireRow.Delete
        End If
    Next i
'Включаем мерцание екрана
Application.ScreenUpdating = True
End Sub


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 14.05.2013 в 11:40.
NewStudent07 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автофильтр (AutoFilter), как отфильтровать данные все кроме.? SAIIIA.P Microsoft Office Excel 8 30.06.2022 19:33
Отфильтровать данные по определенным значениям 2-ух разных полей Blame Microsoft Office Excel 1 26.10.2012 00:52
Как правильно изменять данные в теблице БД!? AK BULLETS БД в Delphi 5 23.03.2010 11:18
Как правильно сохранить данные в таблицу??? kAtenok87 PHP 4 07.05.2009 11:24
Поскажите как отфильтровать данные в выбраном диаппазоне DateTimePicker-ами: Denzel БД в Delphi 1 26.01.2007 16:31