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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 09:39   #1
arbitr.ru
 
Регистрация: 06.12.2011
Сообщений: 7
По умолчанию Диапазон внутри закрашеных ячеек

xl 2010
Вообщем задача такова, нужно чтобы скрипт удалял все данные между закрашенных строк, таких строк может быть до 50, потом фильтровал допустим по банку (колонка Е) например банк1 и банк2 + желательно уже в отфильтрованных банках сортировал номера в столбце B
Вложения
Тип файла: zip Заявка (25) (2).zip (12.9 Кб, 12 просмотров)
arbitr.ru вне форума Ответить с цитированием
Старый 06.12.2011, 10:07   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Например
Код:
Sub ertert()
On Error Resume Next
With Range("A7").CurrentRegion
    .AutoFilter 1, "<>"
    With ActiveSheet.AutoFilter.Range.Columns(1)
        .Offset(1).Resize(.Rows.Count - 1).SpecialCells(12).EntireRow.Delete
    End With
    .AutoFilter
    .Sort Key1:=.Cells(1, 5), Order1:=xlAscending, _
          Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes, MatchCase:=False
End With
End Sub
nilem вне форума Ответить с цитированием
Старый 06.12.2011, 10:08   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Удобнее ориентироваться не на цвет, а на наличие данных в ст. А:
Код:
Sub Макрос1()
Columns("A").SpecialCells(xlCellTypeConstants, 23).EntireRow.Delete
Range("E7").Sort [E7], xlAscending, [B7], , xlAscending, Header:=xlYes
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 06.12.2011, 23:38   #4
arbitr.ru
 
Регистрация: 06.12.2011
Сообщений: 7
По умолчанию

Спасибо ребят что ответили, но это не совсем то что нужно.
Извиняюсь что вопрос был поставлен не очень корректно, просто очень спешил когда создавал тему.
Приведенные примеры удаляют строки не закрашенные, а нужно:
удалить данные из ячеек в колонке "C" в не закрашенных строках
применить фильтр ("Е7") по: банк1+банк2 и в уже отфильтрованных, отсортировать номера в колонке "В" от минимального к максимальному (но в диапазоне между закрашенных строк) т.е. не тупо выделить весь столб ("B9:B131") и применить сортировку, а сортировать диапазон например для "м-т №20" диапазон сортировки - B9:E17(применить сортировку от мин->макс).
диапазон сортировки должен захватывать столбец "Е" т.к. номера в столбе "В" должны меняться вместе с названием банка
arbitr.ru вне форума Ответить с цитированием
Старый 10.12.2011, 01:23   #5
arbitr.ru
 
Регистрация: 06.12.2011
Сообщений: 7
По умолчанию

Неужели никак?
Хотя бы подскажите как отсортировать ячейки в колонке "B" не затрагивая цветную строку, пробовал "настраиваемую" сортировку, что бы он не сортировал цветную ячейку, ничего не получилось =/
Может как нибудь можно отсортировать только те ячейки в колонке "B" у которых формат "общий", т.к. там где закрашенные всегда будет "текстовый" формат?
Я тоже новичок в VBA и тоже учусь на примерах с форума, и хелпе
Пока только вот что получилось

Код:
Sub test_ПТС()
'прячем шапку
    Rows("1:6").Select
    Range("A6").Activate
    Selection.EntireRow.Hidden = True
'умещаем все на 1 лист
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
'========================================================================
'Фильтр не банк3
ActiveSheet.Range("$A$7:$E$141").AutoFilter Field:=5, Criteria1:="<>банк3", Operator:=xlAnd

'печать НЕ БАНК3
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
'=========================================================
'фильтр НЕ БАНК1, НЕ БАНК2
ActiveSheet.Range("$A$7:$E$141").AutoFilter Field:=5, Criteria1:="<>банк1", Operator:=xlAnd, Criteria2:="<>банк2", Operator:=xlAnd
   ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.ShowAllData
'=========================================================
'Фильтр ТОЛЬКО БАНК4
ActiveSheet.Range("$A$7:$E$142").AutoFilter Field:=5, Criteria1:="=банк4", _
        Operator:=xlOr, Criteria2:="="
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
Отсортировать бы номера в колонке "В" внутри не закрашенных ячеек перед печатью... Помогите кто чем может =)
arbitr.ru вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка выделенных ячеек-ограничить диапазон Uralmaster Microsoft Office Excel 7 01.02.2011 10:24
Динамически изменяемый диапазон ячеек от условия Tidus Microsoft Office Excel 4 06.06.2010 10:32
Автоматически очистить диапазон ячеек. agregator Microsoft Office Excel 8 19.04.2010 11:19
Диапазон ячеек равен 0 segail Microsoft Office Excel 16 14.02.2010 22:14
Добавление данных в диапазон ячеек denneo Microsoft Office Excel 1 08.02.2009 09:05