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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир 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 (60.5 Kb)
 
Ответить
СообщениеВсем здравствуйте. Помогите подправить Макрос. Нужно чтобы кнопка работала на весь лист и не была привязана к верхним строчкам. А то добавляю сверху или между 2 строчки и кнопка перестаёт работать. И например в строке 8 есть значение 0 оно скрывается а если добавить значение значение 0 например на 17 строчку то это значение не скрывается а надо чтобы значение скрывалось на всём документе) Надеюсь правильно выразил свой вопрос)

Автор - gorkaps
Дата добавления - 05.06.2016 в 11:34
Roman777 Дата: Воскресенье, 05.06.2016, 11:44 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 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 (63.5 Kb)


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

вот

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

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


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

Автор - Roman777
Дата добавления - 05.06.2016 в 11:54
Karataev Дата: Воскресенье, 05.06.2016, 11:57 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 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
Группа: Админы
Ранг: Местный житель
Сообщений: 19145
Репутация: 4410 ±
Замечаний: ±

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


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

Автор - Pelena
Дата добавления - 05.06.2016 в 12:09
Karataev Дата: Воскресенье, 05.06.2016, 12:09 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 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
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 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
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

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


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
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 из 1
  • 1
Поиск:

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