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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет кол-ва ячеек. Критерий - тип шрифта (Ж, К, Ч). - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет кол-ва ячеек. Критерий - тип шрифта (Ж, К, Ч). (Макросы/Sub)
Подсчет кол-ва ячеек. Критерий - тип шрифта (Ж, К, Ч).
Eugen_excel Дата: Среда, 08.02.2017, 15:16 | Сообщение № 1
Группа: Заблокированные
Ранг: Новичок
Сообщений: 19
Репутация: -14 ±
Замечаний: 60% ±

Excel 2010
Уважаемые форумчане!

Необходима Ваша помощь в создании кода VBA для подсчета кол-ва ячеек. Критерий - тип шрифта (полужирный/курсив/подчеркнутый). Необходимо 3 кода для каждого критерия. Необходимость в 3-х кодах, а не в 1-ом общем связана с тем, что затем эти коды придется объединять для подсчета, например, одновременно по двойному критерию (полужирный + курсив).

Прошу написать коды по примеру следующего кода подсчета кол-ва ячеек по цвету заливки. Т.е. функция будет следующего вида: (диапазон ячеек; адрес ячейки соответствующей критерию).

[vba]
Код

Public Function СЧЁТЗАЛИВКА(ДИАПАЗОН As Range, ЯЧЕЙКА) As Long
    Dim S As Double
    Dim rCell As Range
    Dim ColCell As Long
  
    ColCell = ЯЧЕЙКА.Interior.Color
    S = 0
  
    For Each rCell In ДИАПАЗОН
        If rCell.Interior.Color = ColCell Then
            S = S + 1
        End If
    Next
  
    СЧЁТЗАЛИВКА = S
End Function
[/vba]

Рассчитывая на Вашу помощь, делюсь также с Вами кодом для подсчета кол-ва ячеек по цвету шрифта, а также объединенным кодом для подсчета одновременно по 2-м критериям (цвет заливки + цвет шрифта). Все коды и примеры использования в приложении. Кому интересно и кто не знает, берите, пожалуйста.

P.S. Сам коды писать, к сожалению, не умею :( Коды для подсчета по цвету заливки, по цвету шрифта мне предоставили на стороне. Объединенный код также помогли сделать.
К сообщению приложен файл: 9943164.xlsm (18.4 Kb)


Сообщение отредактировал Eugen_excel - Среда, 08.02.2017, 15:24
 
Ответить
СообщениеУважаемые форумчане!

Необходима Ваша помощь в создании кода VBA для подсчета кол-ва ячеек. Критерий - тип шрифта (полужирный/курсив/подчеркнутый). Необходимо 3 кода для каждого критерия. Необходимость в 3-х кодах, а не в 1-ом общем связана с тем, что затем эти коды придется объединять для подсчета, например, одновременно по двойному критерию (полужирный + курсив).

Прошу написать коды по примеру следующего кода подсчета кол-ва ячеек по цвету заливки. Т.е. функция будет следующего вида: (диапазон ячеек; адрес ячейки соответствующей критерию).

[vba]
Код

Public Function СЧЁТЗАЛИВКА(ДИАПАЗОН As Range, ЯЧЕЙКА) As Long
    Dim S As Double
    Dim rCell As Range
    Dim ColCell As Long
  
    ColCell = ЯЧЕЙКА.Interior.Color
    S = 0
  
    For Each rCell In ДИАПАЗОН
        If rCell.Interior.Color = ColCell Then
            S = S + 1
        End If
    Next
  
    СЧЁТЗАЛИВКА = S
End Function
[/vba]

Рассчитывая на Вашу помощь, делюсь также с Вами кодом для подсчета кол-ва ячеек по цвету шрифта, а также объединенным кодом для подсчета одновременно по 2-м критериям (цвет заливки + цвет шрифта). Все коды и примеры использования в приложении. Кому интересно и кто не знает, берите, пожалуйста.

P.S. Сам коды писать, к сожалению, не умею :( Коды для подсчета по цвету заливки, по цвету шрифта мне предоставили на стороне. Объединенный код также помогли сделать.

Автор - Eugen_excel
Дата добавления - 08.02.2017 в 15:16
sboy Дата: Среда, 08.02.2017, 15:44 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
[vba]
Код
Public Function СЧЁТШРИФТжирный(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Bold = True Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТжирный = S
End Function

Public Function СЧЁТШРИФТкурсив(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Italic = True Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТкурсив = S
End Function

Public Function СЧЁТШРИФТчерта(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Underline = xlUnderlineStyleSingle Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТчерта = S
End Function
[/vba]
К сообщению приложен файл: 2891243.xlsm (20.8 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
[vba]
Код
Public Function СЧЁТШРИФТжирный(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Bold = True Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТжирный = S
End Function

Public Function СЧЁТШРИФТкурсив(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Italic = True Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТкурсив = S
End Function

Public Function СЧЁТШРИФТчерта(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range
    S = 0
    For Each rCell In ДИАПАЗОН
        If rCell.Font.Underline = xlUnderlineStyleSingle Then
            S = S + 1
        End If
    Next
    СЧЁТШРИФТчерта = S
End Function
[/vba]

Автор - sboy
Дата добавления - 08.02.2017 в 15:44
Eugen_excel Дата: Среда, 08.02.2017, 17:57 | Сообщение № 3
Группа: Заблокированные
Ранг: Новичок
Сообщений: 19
Репутация: -14 ±
Замечаний: 60% ±

Excel 2010
@sboy
Вы просто гуру Экселя! respect Спасибо большое! Вы еще сделали, что в формуле нужно указывать только диапазон без необходимости указания ячейки-критерия hands

Теперь в одной ячейке можно закодировать кучу информации, а вернее загрузить в нее 3 значения: по цвету шрифта, по цвету заливки и по типу шрифта!!
 
Ответить
Сообщение@sboy
Вы просто гуру Экселя! respect Спасибо большое! Вы еще сделали, что в формуле нужно указывать только диапазон без необходимости указания ячейки-критерия hands

Теперь в одной ячейке можно закодировать кучу информации, а вернее загрузить в нее 3 значения: по цвету шрифта, по цвету заливки и по типу шрифта!!

Автор - Eugen_excel
Дата добавления - 08.02.2017 в 17:57
Eugen_excel Дата: Воскресенье, 19.02.2017, 17:58 | Сообщение № 4
Группа: Заблокированные
Ранг: Новичок
Сообщений: 19
Репутация: -14 ±
Замечаний: 60% ±

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

Автор - Eugen_excel
Дата добавления - 19.02.2017 в 17:58
_Boroda_ Дата: Понедельник, 20.02.2017, 13:29 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Public Function СЧЁТШРИФТжирный(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range, da_ As Range
    S = 0
    For Each da_ In ДИАПАЗОН.Areas
        For Each rCell In da_
            If rCell.Font.Bold = True Then
                S = S + 1
            End If
        Next
    Next
    СЧЁТШРИФТжирный = S
End Function
[/vba]
Функция пишется вот так
Код
=СЧЁТШРИФТжирный((A1:C9;E4:F6;H9:J16))
К сообщению приложен файл: primer-8-1.xlsx (37.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Public Function СЧЁТШРИФТжирный(ДИАПАЗОН As Range) As Long
    Dim S As Double
    Dim rCell As Range, da_ As Range
    S = 0
    For Each da_ In ДИАПАЗОН.Areas
        For Each rCell In da_
            If rCell.Font.Bold = True Then
                S = S + 1
            End If
        Next
    Next
    СЧЁТШРИФТжирный = S
End Function
[/vba]
Функция пишется вот так
Код
=СЧЁТШРИФТжирный((A1:C9;E4:F6;H9:J16))

Автор - _Boroda_
Дата добавления - 20.02.2017 в 13:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет кол-ва ячеек. Критерий - тип шрифта (Ж, К, Ч). (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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