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

Вход

Регистрация

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

 

= Мир MS Excel/Заливка и снятие заливки открытых строк умной таблицы. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заливка и снятие заливки открытых строк умной таблицы. (Макросы/Sub)
Заливка и снятие заливки открытых строк умной таблицы.
Сергей13 Дата: Четверг, 21.03.2019, 19:59 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!

Ребята есть умная таблица, которая фильтруется выбором текстовых данных.
Необходимо произвести заливку открытых строк (кодом), также при необходимости снять заливку открытых строк.
Но заливка происходит спонтанно то заливает открытые строки, то заливает как открытые строки, так и закрытые строки, то есть полностью всю таблицу.
Как сделать так, чтобы заливка и снятие заливки работало на открытые или видимые строки таблицы?
К сообщению приложен файл: 1969099.xlsm (22.9 Kb)
 
Ответить
СообщениеЗдравствуйте!

Ребята есть умная таблица, которая фильтруется выбором текстовых данных.
Необходимо произвести заливку открытых строк (кодом), также при необходимости снять заливку открытых строк.
Но заливка происходит спонтанно то заливает открытые строки, то заливает как открытые строки, так и закрытые строки, то есть полностью всю таблицу.
Как сделать так, чтобы заливка и снятие заливки работало на открытые или видимые строки таблицы?

Автор - Сергей13
Дата добавления - 21.03.2019 в 19:59
gling Дата: Четверг, 21.03.2019, 23:25 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2519
Репутация: 674 ±
Замечаний: 0% ±

2010
Здравствуйте. Вариант в файле [vba]
Код
Sub фильтр()
    If Application.Subtotal(3, Range("a1:a1000")) < Application.CountA(Range("a1:a1000")) Then
        Range("tabl_logbook").Select
        Selection.Interior.ColorIndex = 20
    Else
        Range("tabl_logbook").Interior.Color = xlNone
    End If
End Sub
[/vba]
К сообщению приложен файл: 0344745.xlsm (23.7 Kb)


ЯД-41001506838083
 
Ответить
СообщениеЗдравствуйте. Вариант в файле [vba]
Код
Sub фильтр()
    If Application.Subtotal(3, Range("a1:a1000")) < Application.CountA(Range("a1:a1000")) Then
        Range("tabl_logbook").Select
        Selection.Interior.ColorIndex = 20
    Else
        Range("tabl_logbook").Interior.Color = xlNone
    End If
End Sub
[/vba]

Автор - gling
Дата добавления - 21.03.2019 в 23:25
krosav4ig Дата: Четверг, 21.03.2019, 23:48 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
для работы с видимыми ячейками диапазона следует использовать SpecialCells(xlCellTypeVisible)
[vba]
Код
Sub Zalivka() 'Заливка
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"

        ShSales.Range("tabl_logbook").SpecialCells(xlCellTypeVisible).Interior.Color = 15921906 'Заливка открытых строк
End Sub

Sub NoZalivka() 'Нет заливки
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"

        ShSales.Range("tabl_logbook").SpecialCells(xlCellTypeVisible).Interior.Color = xlNone 'Снять заливку открытых строк
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедля работы с видимыми ячейками диапазона следует использовать SpecialCells(xlCellTypeVisible)
[vba]
Код
Sub Zalivka() 'Заливка
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"

        ShSales.Range("tabl_logbook").SpecialCells(xlCellTypeVisible).Interior.Color = 15921906 'Заливка открытых строк
End Sub

Sub NoZalivka() 'Нет заливки
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"

        ShSales.Range("tabl_logbook").SpecialCells(xlCellTypeVisible).Interior.Color = xlNone 'Снять заливку открытых строк
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 21.03.2019 в 23:48
Сергей13 Дата: Пятница, 22.03.2019, 00:00 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
gling, Спасибо, но немного не то…
Функция кнопок фильтрации на листе «log_book», это только фильтрация и сброс фильтрации и не более того.
Функция кнопок на листе «Управление_заливкой» это только заливка и сброс заливки и не что иное.
Алгоритм действия такой. Необходимо на листе «log_book» произвести любую предложенную тестовую фильтрацию, затем на листе «Управление заливкой», произвести заливку отфильтрованных строк (видимых строк). Таким же способом и снимать заливку.
 
Ответить
Сообщениеgling, Спасибо, но немного не то…
Функция кнопок фильтрации на листе «log_book», это только фильтрация и сброс фильтрации и не более того.
Функция кнопок на листе «Управление_заливкой» это только заливка и сброс заливки и не что иное.
Алгоритм действия такой. Необходимо на листе «log_book» произвести любую предложенную тестовую фильтрацию, затем на листе «Управление заливкой», произвести заливку отфильтрованных строк (видимых строк). Таким же способом и снимать заливку.

Автор - Сергей13
Дата добавления - 22.03.2019 в 00:00
Сергей13 Дата: Пятница, 22.03.2019, 00:00 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Момент!
 
Ответить
Сообщениеkrosav4ig, Момент!

Автор - Сергей13
Дата добавления - 22.03.2019 в 00:00
Сергей13 Дата: Пятница, 22.03.2019, 01:38 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Благодарю!!! С Вашими безошибочными предложениями и поправками, как всегда работает корректно.
 
Ответить
Сообщениеkrosav4ig, Благодарю!!! С Вашими безошибочными предложениями и поправками, как всегда работает корректно.

Автор - Сергей13
Дата добавления - 22.03.2019 в 01:38
Сергей13 Дата: Пятница, 22.03.2019, 01:53 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - Сергей13
Дата добавления - 22.03.2019 в 01:53
krosav4ig Дата: Пятница, 22.03.2019, 01:59 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сергей13, У вас к таблице применен стиль Светлый1, в нем нет границ между столбцами и строками. Для того, чтобы они были, примените стиль Светлый15 или создайте свой


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 22.03.2019, 02:00
 
Ответить
СообщениеСергей13, У вас к таблице применен стиль Светлый1, в нем нет границ между столбцами и строками. Для того, чтобы они были, примените стиль Светлый15 или создайте свой

Автор - krosav4ig
Дата добавления - 22.03.2019 в 01:59
Сергей13 Дата: Пятница, 22.03.2019, 02:52 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Тут такой момент если скрыт столбец умной таблицы (а у меня в рабочем файле скрыт столбец), то после применения кода снять заливку происходит такая вещь.
На скрине показано ввод текста «Тест1» до снятия заливки кодом и ввод текста «Тест2» после снятия заливки кодом. В итоге после снятия заливки кодом, пропадают вертикальные границы строк во время ввода. И это в том случае если скрыт столбец и применен код снятие заливки.
Вот такая беда причем тут связь со снятием заливки не ясно…
К сообщению приложен файл: 9899707.png (11.0 Kb)
 
Ответить
Сообщениеkrosav4ig, Тут такой момент если скрыт столбец умной таблицы (а у меня в рабочем файле скрыт столбец), то после применения кода снять заливку происходит такая вещь.
На скрине показано ввод текста «Тест1» до снятия заливки кодом и ввод текста «Тест2» после снятия заливки кодом. В итоге после снятия заливки кодом, пропадают вертикальные границы строк во время ввода. И это в том случае если скрыт столбец и применен код снятие заливки.
Вот такая беда причем тут связь со снятием заливки не ясно…

Автор - Сергей13
Дата добавления - 22.03.2019 в 02:52
Сергей13 Дата: Пятница, 22.03.2019, 03:13 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, А можно как-то установить в коде диапазон заливки умной таблицы от столбца A8 до столбца К8, включительно, дабы не входить кодом в скрытый диапазон столбца таблицы?
Я предполагаю, что заливка и последующее снятие заливки в скрытом столбце выдает такое влияние на вертикальные границы.


Сообщение отредактировал Сергей13 - Пятница, 22.03.2019, 21:35
 
Ответить
Сообщениеkrosav4ig, А можно как-то установить в коде диапазон заливки умной таблицы от столбца A8 до столбца К8, включительно, дабы не входить кодом в скрытый диапазон столбца таблицы?
Я предполагаю, что заливка и последующее снятие заливки в скрытом столбце выдает такое влияние на вертикальные границы.

Автор - Сергей13
Дата добавления - 22.03.2019 в 03:13
krosav4ig Дата: Пятница, 22.03.2019, 20:48 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 22.03.2019 в 03:13, в сообщении № 10 ()
как-то установить в коде диапазон заливки умной таблицы от столбца A1 до столбца К8

[vba]
Код
Sub Zalivka() 'Заливка
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"
    With ShSales.Range("tabl_logbook")
        Intersect(.Columns("A:K"), .Cells).SpecialCells(12).Interior.Color = 15921906  'Заливка открытых строк
    End With
End Sub

Sub NoZalivka() 'Нет заливки
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"
    With ShSales.Range("tabl_logbook")
        Intersect(.Columns("A:K"), .Cells).SpecialCells(12).Interior.Color = xlNone  'Снять заливку открытых строк
    End With
End Sub
[/vba]
12 - это константа xlCellTypeVisible
Цитата Сергей13, 22.03.2019 в 03:13, в сообщении № 10 ()
В итоге после снятия заливки кодом, пропадают вертикальные границы строк во время ввода.
Можете в файле показать?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 22.03.2019 в 03:13, в сообщении № 10 ()
как-то установить в коде диапазон заливки умной таблицы от столбца A1 до столбца К8

[vba]
Код
Sub Zalivka() 'Заливка
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"
    With ShSales.Range("tabl_logbook")
        Intersect(.Columns("A:K"), .Cells).SpecialCells(12).Interior.Color = 15921906  'Заливка открытых строк
    End With
End Sub

Sub NoZalivka() 'Нет заливки
    Set ShSales = ThisWorkbook.Worksheets("log_book")       'Лист "log_book"
    With ShSales.Range("tabl_logbook")
        Intersect(.Columns("A:K"), .Cells).SpecialCells(12).Interior.Color = xlNone  'Снять заливку открытых строк
    End With
End Sub
[/vba]
12 - это константа xlCellTypeVisible
Цитата Сергей13, 22.03.2019 в 03:13, в сообщении № 10 ()
В итоге после снятия заливки кодом, пропадают вертикальные границы строк во время ввода.
Можете в файле показать?

Автор - krosav4ig
Дата добавления - 22.03.2019 в 20:48
Сергей13 Дата: Пятница, 22.03.2019, 22:07 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Можете в файле показать?

В тестовом примере скрыт столбец умной таблицы F (так необходимо, так задумано)
Для тестирования:
1. Введите несколько значений в строку таблицы столбца A (обратите на начальный формат вертикальных границ)
2. Затем произведите клик по кнопке снять заливку.
3. Продолжайте ввод в столбце А (обратите на формат вертикальных границ таблицы они не отображаются).
К сообщению приложен файл: 7297996.xlsm (24.0 Kb)
 
Ответить
Сообщение
Можете в файле показать?

В тестовом примере скрыт столбец умной таблицы F (так необходимо, так задумано)
Для тестирования:
1. Введите несколько значений в строку таблицы столбца A (обратите на начальный формат вертикальных границ)
2. Затем произведите клик по кнопке снять заливку.
3. Продолжайте ввод в столбце А (обратите на формат вертикальных границ таблицы они не отображаются).

Автор - Сергей13
Дата добавления - 22.03.2019 в 22:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заливка и снятие заливки открытых строк умной таблицы. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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