Здравствуйте. Подскажите, как применить данный макрос к разным страницам. Но при этом критерий в макросе на каждой странице будет другим. Здесь =2. На другой странице будет = 3 и тд.
Чтобы не писать на каждую страницу макрос. А чтобы его запустить и он сработает по всем страницам по заданным критериям.
Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'отключаем обновление экрана для ускорения For Each cell In ActiveSheet.UsedRange.Columns(1).Cells 'проходим по всем ячейкам первого столбца If cell.Value = "2" Then cell.EntireRow.Hidden = True 'если в ячейке 2 - скрываем строку Next Application.ScreenUpdating = True End Sub
Sve1us1k написал: Но при этом критерий в макросе на каждой странице будет другим
- как минимум нужен список соответствия страница/критерий. Или как вариант - можно запускать на активном, критерий вводить через запрос. Как желаете делать? P.S. Есть в коде один нюанс - редко когда если в ячейке видите 2, там будет именно "2". Это сильно "специальный" файл должен быть...
Sub asd()
Dim c As New Collection
c.Add 2, "Лист1"
c.Add 3, "Лист2"
For Each st In ActiveWorkbook.Sheets
For Each cell In st.UsedRange.Columns(1).Cells
If cell.Value = c.Item(st.Name) Then cell.EntireRow.Hidden = True
Next
Next
End Sub
Hugo написал: - как минимум нужен список соответствия страница/критерий.
Страница2 - If cell.Value > "1" Then cell.EntireRow.Hidden = True Страница3 - If cell.Value > "2" Then cell.EntireRow.Hidden = True (КАК ЗДЕСЬ ЕЩЕ УКАЗАТЬ, ЧТО И ЕДИНИЦА ТОЖЕ, если =1 и >2) Страница4 - If cell.Value > "3" Then cell.EntireRow.Hidden = True (=1, =2 и >3)
Т.е. на странице 2 остаются строки только с 1-ми на странице 3 - только с 2-ми на странице 4 - только с 3-ми и т.д.
Мне вообще нужна сортировка данных. С первой страницы на остальные. У меня получилось Формулами сделать только просто копирование всех данных на каждый лист. А уже макросом нашла как отсортировать(скрыть в моем примере) ненужные строки.
Sve1us1k написал: Страница2 - If cell.Value > "1" Then cell.EntireRow.Hidden = TrueСтраница3 - If cell.Value > "2" Then cell.EntireRow.Hidden = True (КАК ЗДЕСЬ ЕЩЕ УКАЗАТЬ, ЧТО И ЕДИНИЦА ТОЖЕ, если =1 и >2) Страница4 - If cell.Value > "3" Then cell.EntireRow.Hidden = True (=1, =2 и >3)
Код
Sub asd()
For i = 2 To Sheets.Count
For Each cell In Sheets(i).UsedRange.Columns(1).Cells
If cell.Value <> i - 1 Then
cell.EntireRow.Hidden = True
End If
Next
Next i
End Sub
kavaka написал: Sub asd() Dim c As New Collection c.Add 2, "Лист1" c.Add 3, "Лист2" For Each st In ActiveWorkbook.Sheets For Each cell In st.UsedRange.Columns(1).Cells If cell.Value = c.Item(st.Name) Then cell.EntireRow.Hidden = True Next NextEnd Sub
Может я не с той стороны зашла. Мне вообще нужна сортировка данных. С первой страницы на остальные. У меня получилось Формулами сделать только просто копирование всех данных на каждый лист. А уже макросом нашла как отсортировать(скрыть в моем примере) ненужные строки. (я в excel не особо шарю, что нашла то и использовала).
Может поможете просто сразу с макрасом, который будет сортировать мои данные со Страницы1 (по столбцу А:А на остальные. на странице 2 остаются строки только с 1-ми в столбце А. на странице 3 - только с 2-ми на странице 4 - только с 3-ми и т.д
vikttur написал: Измените логин в своем профиле (см, правила форума
Если вы про пункт 3.2. Использовать в сообщениях, подписях, именах и логинах на форумах нецензурную лексику, текст с пЕреМеНнЫм регистром или бессмысленным набором символов. То не вижу проблем. Меня зовут Светусик. А это мой логин. Там нет ни переменного регистра, ни бессмысленного набора символов. Опишите проблему подробнее?
vikttur написал: и заголовок не соответствует задаче
Окей. создам новую тему. Хотела не плодить их. Ну ладно. Задам этот вопрос в другой теме. Только потом напишете что я два раза одно и тоже спрашиваю...(((