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

Вход

Регистрация

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

 

= Мир MS Excel/Условное форматирование и форма выбора диапозона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условное форматирование и форма выбора диапозона (Макросы/Sub)
Условное форматирование и форма выбора диапозона
Buloshka Дата: Понедельник, 28.11.2016, 09:15 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Уже сил нет разбираться.... Помогите кто чем может:
файл реализовывает подсчет закрашенных ячеек и вывод значения в ячейку.
но одно большое но мешает - перед тем как выполнить макрос нужно выполнить условное форматирование(заливка цветом не повторяющихся значений), потом нужно выбрать диапазон руками и отметить через ctrl закрашенную ячейку как образец.
Какими функциями и формулами можно автоматизировать процесс?
К сообщению приложен файл: 0710255.xlsm (19.5 Kb)
 
Ответить
СообщениеУже сил нет разбираться.... Помогите кто чем может:
файл реализовывает подсчет закрашенных ячеек и вывод значения в ячейку.
но одно большое но мешает - перед тем как выполнить макрос нужно выполнить условное форматирование(заливка цветом не повторяющихся значений), потом нужно выбрать диапазон руками и отметить через ctrl закрашенную ячейку как образец.
Какими функциями и формулами можно автоматизировать процесс?

Автор - Buloshka
Дата добавления - 28.11.2016 в 09:15
nilem Дата: Понедельник, 28.11.2016, 09:25 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Может пользовательская функция подойдет?
Посмотрите здесь


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеМожет пользовательская функция подойдет?
Посмотрите здесь

Автор - nilem
Дата добавления - 28.11.2016 в 09:25
Buloshka Дата: Понедельник, 28.11.2016, 09:34 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem, видела это решение. но у меня уже вычисляются нужные значения и даже считается их количество.
нужно прикрутить диалоговое окно с выбором диапазона и выбором ячейки-образца
 
Ответить
Сообщениеnilem, видела это решение. но у меня уже вычисляются нужные значения и даже считается их количество.
нужно прикрутить диалоговое окно с выбором диапазона и выбором ячейки-образца

Автор - Buloshka
Дата добавления - 28.11.2016 в 09:34
nilem Дата: Понедельник, 28.11.2016, 10:02 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Все-таки попробуйте UDF, вот такую:
[vba]
Код
Public Function GetDistinctCount(rng As Range) As Long
Dim x, v, i As Long
x = Intersect(rng, rng.Worksheet.UsedRange).Value
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For Each v In Intersect(rng, rng.Worksheet.UsedRange).Value
        If Len(v) Then .Item(v) = .Item(v) + 1
    Next v
    For Each v In .keys
        If .Item(v) = 1 Then i = i + 1
    Next v
End With
GetDistinctCount = i
End Function
[/vba]
На листе пишем такую формулу
Код
=GetDistinctCount(A3:C11)

A3:C11 - это диапазон из вашего примера. Сразу считаем уникальные без повторов, и УФ не нужно.


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеВсе-таки попробуйте UDF, вот такую:
[vba]
Код
Public Function GetDistinctCount(rng As Range) As Long
Dim x, v, i As Long
x = Intersect(rng, rng.Worksheet.UsedRange).Value
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For Each v In Intersect(rng, rng.Worksheet.UsedRange).Value
        If Len(v) Then .Item(v) = .Item(v) + 1
    Next v
    For Each v In .keys
        If .Item(v) = 1 Then i = i + 1
    Next v
End With
GetDistinctCount = i
End Function
[/vba]
На листе пишем такую формулу
Код
=GetDistinctCount(A3:C11)

A3:C11 - это диапазон из вашего примера. Сразу считаем уникальные без повторов, и УФ не нужно.

Автор - nilem
Дата добавления - 28.11.2016 в 10:02
sboy Дата: Понедельник, 28.11.2016, 10:22 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
нужно прикрутить диалоговое окно с выбором диапазона и выбором ячейки-образца

Диалоги:
[vba]
Код
Set rObrazec = Application.InputBox("Выберите ячейку-образец", Type:=8)
Set rCells = Application.InputBox("Выберите диапазон для подсчета", Type:=8)
[/vba]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
нужно прикрутить диалоговое окно с выбором диапазона и выбором ячейки-образца

Диалоги:
[vba]
Код
Set rObrazec = Application.InputBox("Выберите ячейку-образец", Type:=8)
Set rCells = Application.InputBox("Выберите диапазон для подсчета", Type:=8)
[/vba]

Автор - sboy
Дата добавления - 28.11.2016 в 10:22
Buloshka Дата: Понедельник, 28.11.2016, 10:31 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem, Огромное спасибо!!! действительно все работает. Меня занесло не в ту сторону, прямо в какие-то дебри)
 
Ответить
Сообщениеnilem, Огромное спасибо!!! действительно все работает. Меня занесло не в ту сторону, прямо в какие-то дебри)

Автор - Buloshka
Дата добавления - 28.11.2016 в 10:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условное форматирование и форма выбора диапозона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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