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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть строки при нажатии кнопки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть строки при нажатии кнопки (Макросы/Sub)
Скрыть строки при нажатии кнопки
lebensvoll Дата: Пятница, 15.04.2016, 17:27 | Сообщение № 1
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
КРОСС продолжение темы My WebPage
Макрос №3:
Если оператору не потребуется таблица №2, то нажимает кнопку (СКРЫТЬ ТАБЛИЦУ №2) после чего должны скрыться диапазон строк 75:82. Но прошу учесть что этот диапазон может изменится, если оператор использует макрос №2.
К сообщению приложен файл: 1491210.zip (98.4 Kb)


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеКРОСС продолжение темы My WebPage
Макрос №3:
Если оператору не потребуется таблица №2, то нажимает кнопку (СКРЫТЬ ТАБЛИЦУ №2) после чего должны скрыться диапазон строк 75:82. Но прошу учесть что этот диапазон может изменится, если оператор использует макрос №2.

Автор - lebensvoll
Дата добавления - 15.04.2016 в 17:27
Manyasha Дата: Пятница, 15.04.2016, 18:11 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
lebensvoll, посмотрите такой вариант, пойдет?
[vba]
Код
Dim r&, lr&
Sub hideOrShowTable()
    If ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2" Then
        r = Columns("v:x").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        lr = Cells(Rows.Count, 2).End(xlUp).Row
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]
Кнопку переделала в фигуру, чтобы текст на ней можно было менять.
Начало таблицы определяется ячейкой "Таблица №2" в столбце V, скрывается все до конца листа.
К сообщению приложен файл: -7_-.rar (93.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlebensvoll, посмотрите такой вариант, пойдет?
[vba]
Код
Dim r&, lr&
Sub hideOrShowTable()
    If ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2" Then
        r = Columns("v:x").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        lr = Cells(Rows.Count, 2).End(xlUp).Row
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]
Кнопку переделала в фигуру, чтобы текст на ней можно было менять.
Начало таблицы определяется ячейкой "Таблица №2" в столбце V, скрывается все до конца листа.

Автор - Manyasha
Дата добавления - 15.04.2016 в 18:11
lebensvoll Дата: Пятница, 15.04.2016, 18:27 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, Вы все правильно и красиво сделали. НО!!!
Цитата
должны скрыться диапазон строк 75:82. Но прошу учесть что этот диапазон может изменится

Нужно чтоб ЗАКЛЮЧЕНИЕ оставалось видимым ((( как и те кто проводил испытания ((((
[img][/img]
И еще что очень важно!!! Возможно что оператор добавит испытания и тогда диапазон строк 75:82 увеличится или изменится ((( да и еще и этот диапозон также возможно изменится он может быть и 150:157 и т.д


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 15.04.2016, 18:30
 
Ответить
СообщениеManyasha, Вы все правильно и красиво сделали. НО!!!
Цитата
должны скрыться диапазон строк 75:82. Но прошу учесть что этот диапазон может изменится

Нужно чтоб ЗАКЛЮЧЕНИЕ оставалось видимым ((( как и те кто проводил испытания ((((
[img][/img]
И еще что очень важно!!! Возможно что оператор добавит испытания и тогда диапазон строк 75:82 увеличится или изменится ((( да и еще и этот диапозон также возможно изменится он может быть и 150:157 и т.д

Автор - lebensvoll
Дата добавления - 15.04.2016 в 18:27
Manyasha Дата: Пятница, 15.04.2016, 19:14 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
lebensvoll, проглядела. Тогда вот так:
[vba]
Код
Dim r&, lr&
Sub hideOrShowTable()
    If ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2" Then
        r = Columns("v:x").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'Вот тут изменила строчку
        lr = Cells.Find("ЗАКЛЮЧЕНИЕ: ", , xlFormulas, xlPart).Row - 1
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]
диапазон строк 75:82 увеличится или изменится

меняю, у меня нормально отрабатывает


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlebensvoll, проглядела. Тогда вот так:
[vba]
Код
Dim r&, lr&
Sub hideOrShowTable()
    If ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2" Then
        r = Columns("v:x").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'Вот тут изменила строчку
        lr = Cells.Find("ЗАКЛЮЧЕНИЕ: ", , xlFormulas, xlPart).Row - 1
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.Shapes("btn2").TextFrame2.TextRange.Characters.Text = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]
диапазон строк 75:82 увеличится или изменится

меняю, у меня нормально отрабатывает

Автор - Manyasha
Дата добавления - 15.04.2016 в 19:14
lebensvoll Дата: Пятница, 15.04.2016, 19:21 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, hands hands hands
Цитата
меняю, у меня нормально отрабатывает
и у меня также СУПЕР спасибо вам огромное!!!


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеManyasha, hands hands hands
Цитата
меняю, у меня нормально отрабатывает
и у меня также СУПЕР спасибо вам огромное!!!

Автор - lebensvoll
Дата добавления - 15.04.2016 в 19:21
lebensvoll Дата: Среда, 27.04.2016, 15:14 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, добрый день!!! А также всем остальным...
Помогите пожалуйста, макрос (прошу прощение я не ваш использовал а от Pelena, потому как хотел кнопки чтоб были все едины) перестал срабатывать и выдает ошибку Run-time error 91: Object variable or With block variable not set
Не могу просто скрин фото показать компания не позволяет открыть страницу (((( не пойму еще как эту еще позволяет (СПАСИБО ИМ ОГРОМНОЕ ЗА ЭТО).
Я так понимаю что в связи с тем что в столбце В85 стал использовать формулу:
Код
=ЕСЛИ($AC$1;"ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ($AC$62;2)&" МПа, что соответствует классу бетона "&$AG$62&". Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ($AC$63;2)&" МПа до "&ФИКСИРОВАННЫЙ($AC$64;2)&" МПа, что соответствует классам бетона "&$AG$63&" до "&$AG$64&". Партия монолитных конструкций подлежит приемке по прочности бетона если  Вф ≥ Внорм: "&$AG$62&" "&$AB$65&" "&$D$23&".";"ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ($AC$62;2)&" МПа. Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ($AC$63;2)&" МПа до "&ФИКСИРОВАННЫЙ($AC$64;2)&" МПа.")

раньше было так
Код
="ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ(AA62;2)&" МПа. Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ(AA63;2)&" МПа до "&ФИКСИРОВАННЫЙ(AA64;2)&" МПа."

Можно ли исправить это??? Заранее спасибо!!!
К сообщению приложен файл: __28__2.zip (70.7 Kb)


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеManyasha, добрый день!!! А также всем остальным...
Помогите пожалуйста, макрос (прошу прощение я не ваш использовал а от Pelena, потому как хотел кнопки чтоб были все едины) перестал срабатывать и выдает ошибку Run-time error 91: Object variable or With block variable not set
Не могу просто скрин фото показать компания не позволяет открыть страницу (((( не пойму еще как эту еще позволяет (СПАСИБО ИМ ОГРОМНОЕ ЗА ЭТО).
Я так понимаю что в связи с тем что в столбце В85 стал использовать формулу:
Код
=ЕСЛИ($AC$1;"ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ($AC$62;2)&" МПа, что соответствует классу бетона "&$AG$62&". Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ($AC$63;2)&" МПа до "&ФИКСИРОВАННЫЙ($AC$64;2)&" МПа, что соответствует классам бетона "&$AG$63&" до "&$AG$64&". Партия монолитных конструкций подлежит приемке по прочности бетона если  Вф ≥ Внорм: "&$AG$62&" "&$AB$65&" "&$D$23&".";"ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ($AC$62;2)&" МПа. Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ($AC$63;2)&" МПа до "&ФИКСИРОВАННЫЙ($AC$64;2)&" МПа.")

раньше было так
Код
="ЗАКЛЮЧЕНИЕ: Фактическая прочность бетона на контролируемых участках  на момент испытания в среднем составляет "&ФИКСИРОВАННЫЙ(AA62;2)&" МПа. Значения прочности бетона варируются от "&ФИКСИРОВАННЫЙ(AA63;2)&" МПа до "&ФИКСИРОВАННЫЙ(AA64;2)&" МПа."

Можно ли исправить это??? Заранее спасибо!!!

Автор - lebensvoll
Дата добавления - 27.04.2016 в 15:14
Manyasha Дата: Среда, 27.04.2016, 16:19 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
lebensvoll, У Вас раньше надпись "Таблица №2" была в других ячейках, поправила. Если такая строка на листе только в одном месте содержится, то можно искать не в определенных столбцах, а на всем листе
[vba]
Код
Dim r&, lr&
Sub СкрытьТаблицу№2()
    If ActiveSheet.CommandButton2.Caption = "Скрыть Таблицу №2" Then
        'Тут поправила
'        r = Columns("v:z").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'или так
        r = Cells.Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'И здесь пробел убрала
        lr = Cells.Find("ЗАКЛЮЧЕНИЕ:", , xlFormulas, xlPart).Row - 1
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.CommandButton2.Caption = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.CommandButton2.Caption = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlebensvoll, У Вас раньше надпись "Таблица №2" была в других ячейках, поправила. Если такая строка на листе только в одном месте содержится, то можно искать не в определенных столбцах, а на всем листе
[vba]
Код
Dim r&, lr&
Sub СкрытьТаблицу№2()
    If ActiveSheet.CommandButton2.Caption = "Скрыть Таблицу №2" Then
        'Тут поправила
'        r = Columns("v:z").Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'или так
        r = Cells.Find("Таблица №2", , xlValues, xlWhole).Row - 1
        'И здесь пробел убрала
        lr = Cells.Find("ЗАКЛЮЧЕНИЕ:", , xlFormulas, xlPart).Row - 1
        Rows(r & ":" & lr).Hidden = True
        ActiveSheet.CommandButton2.Caption = "Показать Таблицу №2"
    Else
        If IsEmpty(r) Then
            r = Cells(Rows.Count, 2).End(xlUp).Row
            lr = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
        End If
        Rows(r & ":" & lr).Hidden = False
        ActiveSheet.CommandButton2.Caption = "Скрыть Таблицу №2"
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 27.04.2016 в 16:19
lebensvoll Дата: Среда, 27.04.2016, 16:26 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
hands СПАСИБО СУПЕР!!!


Кто бы ты ни был, мир в твоих руках
 
Ответить
Сообщениеhands СПАСИБО СУПЕР!!!

Автор - lebensvoll
Дата добавления - 27.04.2016 в 16:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть строки при нажатии кнопки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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