Страницы: 1
RSS
Применение макроса для разных страниц Excel
 
Здравствуйте.
Подскажите, как применить данный макрос к разным страницам.
Но при этом критерий в макросе на каждой странице будет другим. Здесь =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 - 20.03.2018 17:53:51
 
Цитата
Sve1us1k написал:
Но при этом критерий в макросе на каждой странице будет другим
- как минимум нужен список соответствия страница/критерий.
Или как вариант - можно запускать на активном, критерий вводить через запрос. Как желаете делать?
P.S. Есть в коде один нюанс - редко когда если в ячейке видите 2, там будет именно "2". Это сильно "специальный" файл должен быть...
Изменено: Hugo - 20.03.2018 17:55:56
 
Код
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-ми
и т.д.

Мне вообще нужна сортировка данных. С первой страницы на остальные. У меня получилось Формулами сделать только просто копирование всех данных на каждый лист. А уже макросом нашла как отсортировать(скрыть в моем примере) ненужные строки.  
 
Я в Excele вообще не бумбум(((( Если подскажете еще проще способ - буду очень признательна
 
Цитата
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
Спасибо. Сейчас попробую
 
kavaka,
Что-то не вышло...
Ругается на:
Код
If cell.Value = c.Item(st.Name) Then
 
Почему не пишите про сверхзадачу?
И ещё (я уже сказал надругом форуме) - т.к. в коде есть строка
Код
cell.Value = "2"

то чтоб написать всё корректно - нужен файл.
 
Я вам как раз там ответила. и скинула файл
 
Может я не с той стороны зашла.
Мне вообще нужна сортировка данных.
С первой страницы на остальные.
У меня получилось Формулами сделать только просто копирование всех данных на каждый лист. А уже макросом нашла как отсортировать(скрыть в моем примере) ненужные строки. (я в excel не особо шарю, что нашла то и использовала).

Может поможете просто сразу с макрасом, который будет сортировать мои данные со Страницы1 (по столбцу А:А на остальные.
на странице 2 остаются строки только с 1-ми в столбце А.
на странице 3 - только с 2-ми
на странице 4 - только с 3-ми
и т.д
123332145
25632467864
1400455676768
24589063
367853458
1897546863567
Изменено: Sve1us1k - 20.03.2018 18:47:29
 
Помощь приостановлена
Измените логин в своем профиле (см, правила форума)

нужна сортировка - похоже, и заголовок не соответствует задаче
 
Раскидывает числа по разным листам. Приоритет по наименьшему. Если встречается число 123, то вставка происходит во второй лист к 1.
 
Цитата
vikttur написал:
Измените логин в своем профиле (см, правила форума
Если вы про пункт
3.2. Использовать в сообщениях, подписях, именах и логинах на форумах нецензурную лексику, текст с пЕреМеНнЫм регистром или бессмысленным набором символов.
То не вижу проблем. Меня зовут Светусик. А это мой логин. Там нет ни переменного регистра, ни бессмысленного набора символов.
Опишите проблему подробнее?
 
vikttur,просьба скрыть мой ответ выше от глаз юной леди) Чтобы одумалась.
 
Так может кто-нить объяснит в чем дело?
 
Не стоит заменять цифрами. Светусик - гораздо приятнее, чем цифродевушка с единицей вместо носа  )
 
За юнную леди отдельное спасибо)
 
Цитата
vikttur написал:
и заголовок не соответствует задаче
Окей. создам новую тему. Хотела не плодить их. Ну ладно. Задам этот вопрос в другой теме. Только потом напишете что я два раза одно и тоже спрашиваю...(((
Страницы: 1
Наверх