Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Найти границы диапазона по цвету строк, с установкой списка - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти границы диапазона по цвету строк, с установкой списка (Макросы/Sub)
Найти границы диапазона по цвету строк, с установкой списка
w00t Дата: Среда, 25.05.2016, 10:12 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 126
Репутация: 3 ±
Замечаний: 0% ±

Код ниже, работает отлично. Появилась необходимость - считать последней строкой (для установки выпадающего списка) - строку, которая имеет заливку любым цветом (interior.pattern<>xlNone)
И ориентироваться на границы (первая и последняя строки) достаточно по одному столбцу F, пример: в столбце F, начиная всегда с 6 строки - существует заливка строк цветом, непрерывная. То есть, допустим с 6 по 152 строку (только что это динамический диапазон, всегда с 6 строки, но нужно найти последнюю строку нижнюю, имеющую заливку) столбец F имеет заливку любым цветом, поэтому список выпадающий будет в S6:X152.

Ориентируясь на этот диапазон, нужно на соответствующий в столбцах S и X с 6 строки установить выпадающий список. В частности, в примере вложенном - S6:X22.

[vba]
Код
Sub DropDownList()
    r_ = 6
    For i = 19 To 24
        r1_ = Cells(Rows.Count, i).End(xlUp).Row
        If r1_ > r_ Then r_ = r1_
    Next i
    With Range("S6:X" & r_).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=спис"
    End With
End Sub
[/vba]
К сообщению приложен файл: 3890136_1.xlsm(19Kb)


Сообщение отредактировал w00t - Среда, 25.05.2016, 10:14
 
Ответить
СообщениеКод ниже, работает отлично. Появилась необходимость - считать последней строкой (для установки выпадающего списка) - строку, которая имеет заливку любым цветом (interior.pattern<>xlNone)
И ориентироваться на границы (первая и последняя строки) достаточно по одному столбцу F, пример: в столбце F, начиная всегда с 6 строки - существует заливка строк цветом, непрерывная. То есть, допустим с 6 по 152 строку (только что это динамический диапазон, всегда с 6 строки, но нужно найти последнюю строку нижнюю, имеющую заливку) столбец F имеет заливку любым цветом, поэтому список выпадающий будет в S6:X152.

Ориентируясь на этот диапазон, нужно на соответствующий в столбцах S и X с 6 строки установить выпадающий список. В частности, в примере вложенном - S6:X22.

[vba]
Код
Sub DropDownList()
    r_ = 6
    For i = 19 To 24
        r1_ = Cells(Rows.Count, i).End(xlUp).Row
        If r1_ > r_ Then r_ = r1_
    Next i
    With Range("S6:X" & r_).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=спис"
    End With
End Sub
[/vba]

Автор - w00t
Дата добавления - 25.05.2016 в 10:12
_Boroda_ Дата: Среда, 25.05.2016, 11:50 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9367
Репутация: 3940 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub DropDownList()
    r1_ = Range("A1").SpecialCells(xlLastCell).Row
    With Range("S6:X" & r1_).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=спис"
    End With
End Sub
[/vba]
Предполагаем, что ниже последней закрашенной строки ничего нет и не было


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub DropDownList()
    r1_ = Range("A1").SpecialCells(xlLastCell).Row
    With Range("S6:X" & r1_).Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=спис"
    End With
End Sub
[/vba]
Предполагаем, что ниже последней закрашенной строки ничего нет и не было

Автор - _Boroda_
Дата добавления - 25.05.2016 в 11:50
w00t Дата: Среда, 25.05.2016, 12:13 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 126
Репутация: 3 ±
Замечаний: 0% ±

Да, все так, спасибо.
 
Ответить
СообщениеДа, все так, спасибо.

Автор - w00t
Дата добавления - 25.05.2016 в 12:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти границы диапазона по цвету строк, с установкой списка (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!