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

Вход

Регистрация

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

 

= Мир MS Excel/Скрытие и открытие строк со значением 0 кнопкой - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие и открытие строк со значением 0 кнопкой (Формулы/Formulas)
Скрытие и открытие строк со значением 0 кнопкой
gorkaps Дата: Воскресенье, 05.06.2016, 11:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: -5 ±
Замечаний: 20% ±

Excel 2010
Всем здравствуйте. Помогите подправить Макрос. Нужно чтобы кнопка работала на весь лист и не была привязана к верхним строчкам. А то добавляю сверху или между 2 строчки и кнопка перестаёт работать. И например в строке 8 есть значение 0 оно скрывается а если добавить значение значение 0 например на 17 строчку то это значение не скрывается а надо чтобы значение скрывалось на всём документе) Надеюсь правильно выразил свой вопрос)
К сообщению приложен файл: post_4600.xls(60Kb)
 
Ответить
СообщениеВсем здравствуйте. Помогите подправить Макрос. Нужно чтобы кнопка работала на весь лист и не была привязана к верхним строчкам. А то добавляю сверху или между 2 строчки и кнопка перестаёт работать. И например в строке 8 есть значение 0 оно скрывается а если добавить значение значение 0 например на 17 строчку то это значение не скрывается а надо чтобы значение скрывалось на всём документе) Надеюсь правильно выразил свой вопрос)

Автор - gorkaps
Дата добавления - 05.06.2016 в 11:34
Roman777 Дата: Воскресенье, 05.06.2016, 11:44 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
gorkaps, нужно чтобы скрывалось на листе или всё-таки во всём документе (все листы документа)?
Правильно ли я понял, сейчас у Вас 8 строк заполнено, но Вы хотите оставить следующие 8 строк пустыми и на 17 строке только написать что-то новая с "0" ? Ваша проверка While Not IsEmpty(Cells(i, 2)) естественно отрежет раньше, либо это условие наступит как уже на 9й строке.
Мб Вам что-то типа такого надо?
[vba]
Код
Private Sub tgbZero_Click()
Application.ScreenUpdating = False  ' отключаем обновление экрана во время выполнения макроса
'i = 2 'номер строки, с которой начнется обработка
Rows.Hidden = False
i_n = Cells(Rows.Count, 1).End(xlUp).Row ' находим самую нижнюю заполненную ячейку в первом столбце
    For i = 2 To i_n ' проверяем каждую строчку пока не встретимся с пустым значением т.е. концом списка
        If tgbZero Then ' при нажатом положении кнопка tgbZero принимает значениее True
            Sheets("Лист1").tgbZero.Caption = "Отобразить все строки"  'меняем надпись на кнопке, чтобы было понятно, что произойдет в следующий раз
            If Cells(i, 3).Value = 0 Then   ' прячем или показываем строки с нулевым значением
                Rows(i).Hidden = True       ' зависимости от значения в ячейке столбца "Кол"
            Else                            ' и в зависимости от положения кнопки
                Rows(i).Hidden = False
            End If
        Else
            Sheets("Лист1").tgbZero.Caption = "Скрыть нулевые строки"
            Rows(i).Hidden = False          ' режим отображения всех строк в том числе и с нулем
        End If
    Next i
Application.ScreenUpdating = False  ' включаем обновление экрана во время выполнения макроса
End Sub
[/vba]
правда сразу скажу, что пропущенные (пустые) строки тоже будут скрываться
поправил. При таком Варианте поиска последней заполненной строки нужно сначала все строки развернуть.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Воскресенье, 05.06.2016, 12:05
 
Ответить
Сообщениеgorkaps, нужно чтобы скрывалось на листе или всё-таки во всём документе (все листы документа)?
Правильно ли я понял, сейчас у Вас 8 строк заполнено, но Вы хотите оставить следующие 8 строк пустыми и на 17 строке только написать что-то новая с "0" ? Ваша проверка While Not IsEmpty(Cells(i, 2)) естественно отрежет раньше, либо это условие наступит как уже на 9й строке.
Мб Вам что-то типа такого надо?
[vba]
Код
Private Sub tgbZero_Click()
Application.ScreenUpdating = False  ' отключаем обновление экрана во время выполнения макроса
'i = 2 'номер строки, с которой начнется обработка
Rows.Hidden = False
i_n = Cells(Rows.Count, 1).End(xlUp).Row ' находим самую нижнюю заполненную ячейку в первом столбце
    For i = 2 To i_n ' проверяем каждую строчку пока не встретимся с пустым значением т.е. концом списка
        If tgbZero Then ' при нажатом положении кнопка tgbZero принимает значениее True
            Sheets("Лист1").tgbZero.Caption = "Отобразить все строки"  'меняем надпись на кнопке, чтобы было понятно, что произойдет в следующий раз
            If Cells(i, 3).Value = 0 Then   ' прячем или показываем строки с нулевым значением
                Rows(i).Hidden = True       ' зависимости от значения в ячейке столбца "Кол"
            Else                            ' и в зависимости от положения кнопки
                Rows(i).Hidden = False
            End If
        Else
            Sheets("Лист1").tgbZero.Caption = "Скрыть нулевые строки"
            Rows(i).Hidden = False          ' режим отображения всех строк в том числе и с нулем
        End If
    Next i
Application.ScreenUpdating = False  ' включаем обновление экрана во время выполнения макроса
End Sub
[/vba]
правда сразу скажу, что пропущенные (пустые) строки тоже будут скрываться
поправил. При таком Варианте поиска последней заполненной строки нужно сначала все строки развернуть.

Автор - Roman777
Дата добавления - 05.06.2016 в 11:44
gorkaps Дата: Воскресенье, 05.06.2016, 11:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: -5 ±
Замечаний: 20% ±

Excel 2010
Roman777, ммм.... Это напримере я привёт. А так надо чтобы кнопка работала на том листе где стоит эта кнопка. И при добовлении в любом месте значение 0 при нажатии на кнопку значение скрывалась. После нажатия снова на кнопка значение раскрывалось. Ну тоже самое надо но только на весь лист чтобы работала кнопка а не на определённый участок. Эх не знаю ещё как объяснить)

вот
К сообщению приложен файл: post_46020.xls(64Kb)


Сообщение отредактировал gorkaps - Воскресенье, 05.06.2016, 11:55
 
Ответить
СообщениеRoman777, ммм.... Это напримере я привёт. А так надо чтобы кнопка работала на том листе где стоит эта кнопка. И при добовлении в любом месте значение 0 при нажатии на кнопку значение скрывалась. После нажатия снова на кнопка значение раскрывалось. Ну тоже самое надо но только на весь лист чтобы работала кнопка а не на определённый участок. Эх не знаю ещё как объяснить)

вот

Автор - gorkaps
Дата добавления - 05.06.2016 в 11:52
Roman777 Дата: Воскресенье, 05.06.2016, 11:54 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
gorkaps, выше написал пример... такое?


Много чего не знаю!!!!
 
Ответить
Сообщениеgorkaps, выше написал пример... такое?

Автор - Roman777
Дата добавления - 05.06.2016 в 11:54
Karataev Дата: Воскресенье, 05.06.2016, 11:57 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 226 ±
Замечаний: 0% ±

Excel
...




Сообщение отредактировал Karataev - Воскресенье, 05.06.2016, 12:16
 
Ответить
Сообщение...

Автор - Karataev
Дата добавления - 05.06.2016 в 11:57
gorkaps Дата: Воскресенье, 05.06.2016, 11:59 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: -5 ±
Замечаний: 20% ±

Excel 2010
Karataev, Спасибо) но немного не то) а можно так чтобы строчки пустые не скрывались а скрывалось только значение с 0? И там где я разбросал 0 чтобы там тоже скрывались)
 
Ответить
СообщениеKarataev, Спасибо) но немного не то) а можно так чтобы строчки пустые не скрывались а скрывалось только значение с 0? И там где я разбросал 0 чтобы там тоже скрывались)

Автор - gorkaps
Дата добавления - 05.06.2016 в 11:59
Pelena Дата: Воскресенье, 05.06.2016, 12:09 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 9869
Репутация: 2263 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
Посмотрите так
К сообщению приложен файл: 2730570.xls(54Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПосмотрите так

Автор - Pelena
Дата добавления - 05.06.2016 в 12:09
Karataev Дата: Воскресенье, 05.06.2016, 12:09 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 226 ±
Замечаний: 0% ±

Excel
...




Сообщение отредактировал Karataev - Воскресенье, 05.06.2016, 13:19
 
Ответить
Сообщение...

Автор - Karataev
Дата добавления - 05.06.2016 в 12:09
gorkaps Дата: Воскресенье, 05.06.2016, 12:14 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: -5 ±
Замечаний: 20% ±

Excel 2010
Pelena, Karataev, вот спасибо Вам) но когда добавляю значение 0 в другие строки по всему листу то они не скрыватся( Мне нужно чтобы работало на весь лист)
 
Ответить
СообщениеPelena, Karataev, вот спасибо Вам) но когда добавляю значение 0 в другие строки по всему листу то они не скрыватся( Мне нужно чтобы работало на весь лист)

Автор - gorkaps
Дата добавления - 05.06.2016 в 12:14
Karataev Дата: Воскресенье, 05.06.2016, 12:17 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 226 ±
Замечаний: 0% ±

Excel
[vba]
Код
Private Sub tgbZero_Click()

    Dim lr As Long, i As Long
    
    Application.ScreenUpdating = False  ' отключаем обновление экрана во время выполнения макроса
    
    lr = Columns("C").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
        
    If tgbZero.Value = True Then
        tgbZero.Caption = "Отобразить все строки"
    Else
        tgbZero.Caption = "Скрыть нулевые строки"
    End If
    
    '2 - номер строки, с которой начнется обработка
    For i = 2 To lr
        If tgbZero Then ' при нажатом положении кнопка tgbZero принимает значениее True
            If CStr(Cells(i, 3).Value) <> "" Then
                If Cells(i, 3).Value = 0 Then  ' прячем или показываем строки с нулевым значением
                    Rows(i).Hidden = True       ' зависимости от значения в ячейке столбца "Кол"
                Else                            ' и в зависимости от положения кнопки
                    Rows(i).Hidden = False
                End If
            End If
        Else
            Rows(i).Hidden = False          ' режим отображения всех строк в том числе и с нулем
        End If
    Next i
    
    Application.ScreenUpdating = True  ' включаем обновление экрана во время выполнения макроса
    
End Sub
[/vba]




Сообщение отредактировал Karataev - Воскресенье, 05.06.2016, 12:18
 
Ответить
Сообщение[vba]
Код
Private Sub tgbZero_Click()

    Dim lr As Long, i As Long
    
    Application.ScreenUpdating = False  ' отключаем обновление экрана во время выполнения макроса
    
    lr = Columns("C").Find(What:="*", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
        , SearchFormat:=False).Row
        
    If tgbZero.Value = True Then
        tgbZero.Caption = "Отобразить все строки"
    Else
        tgbZero.Caption = "Скрыть нулевые строки"
    End If
    
    '2 - номер строки, с которой начнется обработка
    For i = 2 To lr
        If tgbZero Then ' при нажатом положении кнопка tgbZero принимает значениее True
            If CStr(Cells(i, 3).Value) <> "" Then
                If Cells(i, 3).Value = 0 Then  ' прячем или показываем строки с нулевым значением
                    Rows(i).Hidden = True       ' зависимости от значения в ячейке столбца "Кол"
                Else                            ' и в зависимости от положения кнопки
                    Rows(i).Hidden = False
                End If
            End If
        Else
            Rows(i).Hidden = False          ' режим отображения всех строк в том числе и с нулем
        End If
    Next i
    
    Application.ScreenUpdating = True  ' включаем обновление экрана во время выполнения макроса
    
End Sub
[/vba]

Автор - Karataev
Дата добавления - 05.06.2016 в 12:17
KuklP Дата: Воскресенье, 05.06.2016, 12:17 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2006
Репутация: 436 ±
Замечаний: 20% ±

Сей грамотей только что на Планете дофыркался, здесь вижу процесс идет в том же духе.
http://www.planetaexcel.ru/forum....eniyami


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Воскресенье, 05.06.2016, 12:18
 
Ответить
СообщениеСей грамотей только что на Планете дофыркался, здесь вижу процесс идет в том же духе.
http://www.planetaexcel.ru/forum....eniyami

Автор - KuklP
Дата добавления - 05.06.2016 в 12:17
gorkaps Дата: Воскресенье, 05.06.2016, 12:22 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: -5 ±
Замечаний: 20% ±

Excel 2010
KuklP, Меня тут хоть понимают.
Админы смотрите он рекламирует сайт. Реклама.
[moder]Не переживайте. Планета в доп. рекламе не нуждается[/moder]


Сообщение отредактировал Pelena - Воскресенье, 05.06.2016, 12:25
 
Ответить
СообщениеKuklP, Меня тут хоть понимают.
Админы смотрите он рекламирует сайт. Реклама.
[moder]Не переживайте. Планета в доп. рекламе не нуждается[/moder]

Автор - gorkaps
Дата добавления - 05.06.2016 в 12:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие и открытие строк со значением 0 кнопкой (Формулы/Formulas)
Страница 1 из 11
Поиск:

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