Vba excel показать строку

Как скрыть или отобразить строки и столбцы с помощью свойства Range.Hidden из кода VBA Excel? Примеры скрытия и отображения строк и столбцов.

Range.Hidden — это свойство, которое задает или возвращает логическое значение, указывающее на то, скрыты строки (столбцы) или нет.

Синтаксис

Expression — выражение (переменная), возвращающее объект Range.

  • True — диапазон строк или столбцов скрыт;
  • False — диапазон строк или столбцов не скрыт.

Примечание

Указанный диапазон (Expression) должен охватывать весь столбец или строку. Это условие распространяется и на группы столбцов и строк.

Свойство Range.Hidden предназначено для чтения и записи.

Примеры кода с Range.Hidden

Пример 1

Варианты скрытия и отображения третьей, пятой и седьмой строк с помощью свойства Range.Hidden:

Sub Primer1()

‘Скрытие 3 строки

Rows(3).Hidden = True

‘Скрытие 5 строки

Range(«D5»).EntireRow.Hidden = True

‘Скрытие 7 строки

Cells(7, 250).EntireRow.Hidden = True

    MsgBox «3, 5 и 7 строки скрыты»

‘Отображение 3 строки

Range(«L3»).EntireRow.Hidden = False

‘Скрытие 5 строки

Cells(5, 250).EntireRow.Hidden = False

‘Скрытие 7 строки

Rows(7).Hidden = False

    MsgBox «3, 5 и 7 строки отображены»

End Sub

Пример 2

Варианты скрытия и отображения третьего, пятого и седьмого столбцов из кода VBA Excel:

Sub Primer2()

‘Скрытие 3 столбца

Columns(3).Hidden = True

‘Скрытие 5 столбца

Range(«E2»).EntireColumn.Hidden = True

‘Скрытие 7 столбца

Cells(25, 7).EntireColumn.Hidden = True

    MsgBox «3, 5 и 7 столбцы скрыты»

‘Отображение 3 столбца

Range(«C10»).EntireColumn.Hidden = False

‘Отображение 5 столбца

Cells(125, 5).EntireColumn.Hidden = False

‘Отображение 7 столбца

Columns(«G»).Hidden = False

    MsgBox «3, 5 и 7 столбцы отображены»

End Sub

Пример 3

Варианты скрытия и отображения сразу нескольких строк с помощью свойства Range.Hidden:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Sub Primer3()

‘Скрытие одновременно 2, 3 и 4 строк

Rows(«2:4»).Hidden = True

    MsgBox «2, 3 и 4 строки скрыты»

‘Скрытие одновременно 6, 7 и 8 строк

Range(«C6:D8»).EntireRow.Hidden = True

    MsgBox «6, 7 и 8 строки скрыты»

‘Отображение 2, 3 и 4 строк

Range(«D2:F4»).EntireRow.Hidden = False

    MsgBox «2, 3 и 4 строки отображены»

‘Отображение 6, 7 и 8 строк

Rows(«6:8»).Hidden = False

    MsgBox «6, 7 и 8 строки отображены»

End Sub

Пример 4

Варианты скрытия и отображения сразу нескольких столбцов из кода VBA Excel:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Sub Primer4()

‘Скрытие одновременно 2, 3 и 4 столбцов

Columns(«B:D»).Hidden = True

    MsgBox «2, 3 и 4 столбцы скрыты»

‘Скрытие одновременно 6, 7 и 8 столбцов

Range(«F3:H40»).EntireColumn.Hidden = True

    MsgBox «6, 7 и 8 столбцы скрыты»

‘Отображение 2, 3 и 4 столбцов

Range(«B6:D6»).EntireColumn.Hidden = False

    MsgBox «2, 3 и 4 столбцы отображены»

‘Отображение 6, 7 и 8 столбцов

Columns(«F:H»).Hidden = False

    MsgBox «6, 7 и 8 столбцы отображены»

End Sub


Довольно часто появляется необходимость в Excel скрывать или отображать строки или столбцы. Особенно это актуально, когда на листе размещается очень много информации и часть из них является вспомогательной и требуется не всегда и тем самым загромождает пространство, ухудшая восприятие.  Если это приходится делать часто, то делать это с помощью меню неудобно, особенно если приходится скрывать и отображать разные столбцы и строки.

Для существенного удобства можно написать простенький макрос, привязав его к кнопке и делать это  одним щелком мыши.

Вот так выглядят простые примеры, с помощью которых Вы без труда сможете скрывать или отображать строки и столбцы с помощью VBA

Пример 1: Скрыть строку 2 в Excel

Sub HideString()  ‘Это название макроса

Rows(2).Hidden = True

End Sub

Пример 2: Скрыть несколько строк в Excel (строку 3-5)

Sub HideStrings()

Rows(«3:5»).Hidden = True

End Sub

Пример 3: Скрыть столбец 2 в Excel

Sub HideCollumn()

Columns(2).Hidden = True

End Sub

Пример 4: Скрытие нескольких столбцов в Excel

Sub HideCollumns()

Columns(«E:F»).Hidden = True

End Sub

Пример 5: Скрытие строки по имени ячейки в Excel

Sub HideCell()

Range(«Возможности Excel»).EntireRow.Hidden = True

End Sub

Пример 6: Скрытие нескольких строк по адресам ячеек

Sub HideCell()

Range(«B3:D4»).EntireRow.Hidden = True

End Sub

Пример 7: Скрытие столбца по имени ячейки

Sub HideCell()

Range(«Возможности Excel»).EntireColumn.Hidden = True

End Sub

Пример 8: Скрытие нескольких столбцов по адресам ячеек

Sub HideCell()

Range(«C2:D5»).EntireColumn.Hidden = True

End Sub

Как видите процесс автоматического скрытия строк и столбцов очень прост, а применений данному приему огромное множество.

Для того, чтобы отобразить строки и  столбцы в Excel вы можете воспользоваться этими же макросами, но вместе True необходимо указать False

Например, макрос для того, чтобы отобразить строку 2 будет выглядеть следующим образом:

Sub ViewString()

Rows(2).Hidden = False

End Sub

Надеемся, что данная статья была полезна вам и ответила на вопрос: как скрыть или отобразить строки и столбцы в Excel с помощью VBA

Спасибо за внимание.

Skip to content

Как отобразить все скрытые строки и столбцы

На чтение 1 мин. Просмотров 9.1k.

Что делает макрос: При просмотре электронных таблиц, которые созданы не вами, вы хотите убедиться, что получаете полное представление о том, что именно в электронной таблице. Для этого вам необходимо убедиться, что никакие столбцы и строки не скрыты. Этот простой макрос автоматически позволит отобразить сразу все скрытые строки и столбцы для вас.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как использовать

Как макрос работает

В этом макросе, мы демонстрируем коллекции Columns и коллекции Rows рабочего листа. Каждая коллекция имеет свойства, которые диктуют, где их объекты скрыты или видны. Этот макрос позволяет отобразить каждый столбец в коллекции Columns и каждую строку в коллекции Rows.

Код макроса

Sub OtobrazitSkritieStrokiStolbci()
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
End Sub

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Содержание

  1. Как скрыть или отобразить строки или столбцы в Excel с помощью VBA
  2. Похожие статьи
  3. VBA макрос для поиска скрытых строк и столбцов на листе Excel
  4. Как найти все скрытые строки на листе Excel с помощью макроса
  5. Описание исходного VBA-кода для поиска скрытых строк
  6. Поиск скрытых столбцов на листе Excel используя VBA-макрос

Как скрыть или отобразить строки или столбцы в Excel с помощью VBA

Довольно часто появляется необходимость в Excel скрывать или отображать строки или столбцы. Особенно это актуально, когда на листе размещается очень много информации и часть из них является вспомогательной и требуется не всегда и тем самым загромождает пространство, ухудшая восприятие. Если это приходится делать часто, то делать это с помощью меню неудобно, особенно если приходится скрывать и отображать разные столбцы и строки.

Для существенного удобства можно написать простенький макрос, привязав его к кнопке и делать это одним щелком мыши.

Вот так выглядят простые примеры, с помощью которых Вы без труда сможете скрывать или отображать строки и столбцы с помощью VBA

Пример 1: Скрыть строку 2 в Excel

Sub HideString() ‘Это название макроса

Rows(2).Hidden = True

End Sub

Пример 2: Скрыть несколько строк в Excel (строку 3-5)

Sub HideStrings()

Rows(«3:5»).Hidden = True

End Sub

Пример 3: Скрыть столбец 2 в Excel

Sub HideCollumn()

Columns(2).Hidden = True

End Sub

Пример 4: Скрытие нескольких столбцов в Excel

Sub HideCollumns()

Columns(«E:F»).Hidden = True

End Sub

Пример 5: Скрытие строки по имени ячейки в Excel

Sub HideCell()

Range(«Возможности Excel»).EntireRow.Hidden = True

End Sub

Пример 6: Скрытие нескольких строк по адресам ячеек

Sub HideCell()

Range(«B3:D4»).EntireRow.Hidden = True

End Sub

Пример 7: Скрытие столбца по имени ячейки

Sub HideCell()

Range(«Возможности Excel»).EntireColumn.Hidden = True

End Sub

Пример 8: Скрытие нескольких столбцов по адресам ячеек

Sub HideCell()

Range(«C2:D5»).EntireColumn.Hidden = True

End Sub

Как видите процесс автоматического скрытия строк и столбцов очень прост, а применений данному приему огромное множество.

Для того, чтобы отобразить строки и столбцы в Excel вы можете воспользоваться этими же макросами, но вместе True необходимо указать False

Например, макрос для того, чтобы отобразить строку 2 будет выглядеть следующим образом:

Sub ViewString()

Rows(2).Hidden = False

End Sub

Надеемся, что данная статья была полезна вам и ответила на вопрос: как скрыть или отобразить строки и столбцы в Excel с помощью VBA

Спасибо за внимание.

Похожие статьи

Что делать если условием таблицы является скрытие столбцов по условию: содержание в ячейках определенного значения? Нужен макрос? Можете помочь?
Например: Есть таблица со строками содержащими в заголовке название рыб (200 строк) и столбцами содержащими в заголовке название наживки для рыб(50 столбцов). В таблице есть диапазон содержащий в ячейках символ Х и символ Y. Используя стандартный фильтр выбираю в одном из столбцов «фильтровать по значению Х» Требуется: Выделив все ячейки оставшегося после фильтрации диапазона(например осталось только 20 строк названий рыб и все 50 столбцов названий наживки) скрыть СТОЛБЦЫ в которых ячейки диапазона не содержат хотя бы 1 символ Х (например в результате получиться 20 строк названий рыб и всего 5 СТОЛБЦОВ названий наживки)

Добрый день!
Выдает ошибку на многоточие и макрос не срабатывает 🙁 как быть в этой ситуации.

Пример 4: Скрытие нескольких столбцов в Excel
Sub HideCollumns()
Columns(«E:F»).Hidden = True
End Sub

Здравствуйте!
Подскажите, пжл, что делаю не так .

В примере №7, выдаёт ошибку 400, пишет:
«Method ‘Range’of object’_Worksheet’failed»

Подскажите, пожалуйста, как сделать, чтобы в примере №7, макрос ссылался бы НЕ на ИМЯ ячейки, а на ЗНАЧЕНИЕ, которое есть в ячейке ?
Иными словами, если ячейки А1, А2, А3 — содержать значение «хотим скрыть эти строки», то макрос скрывает эти строки (т.е. — строки 1, 2 и 3).
Если в какой-либо ячейке — иное значение, то, соответственно, эта строка НЕ скрывается.
Зараенее спасибо за ответ.

Попробуйте вот этот готовый макрос для скрытия и отражения строк по условию
https://yadi.sk/i/Hl2ePH5dbJ2bp

Спасибо за макрос!
Но адаптировать под себя — оказалось для меня слишком сложно ((.
Буду благодарен, если подскажите, как реализовать такую процедуру:
На ЗАЩИЩЁННОМ листе — две кнопки «Скрыть» и «Отобразить»
При нажатии кнопки «Скрыть» — происходит скрытие всех строк, одна из ячеек которых (скажем, все такие ячейки расположены в одном столбце «D») содержит значение «Счёт закрыт».
Лист при этом остаётся ЗАЩИЩЁННЫМ.
И, соответственно, при нажатии кнопки «Отобразить» — все скрытые строки — отображаются. Лист также остаётся защищённым.
Заранее спасибо !

А вот такой вопрос. Есть диапазон в 31 столбец, как скрыть столбцы выходящие за предел диапазона в зависимости от продолжительности месяца. то есть, если, к примеру февраль, то скрыть 3 или 2 последних столбца в диапазоне. Заранее спасибо за ответ !

Можно воспользоваться простеньким макрос скрытия столбцов по определенному условию (в данном случае, если в перовой строке есть цифра 1).

Источник

VBA макрос для поиска скрытых строк и столбцов на листе Excel

Данные исходные коды VBA-макросов умеют быстро находить все скрытые строки и столбцы на листе Excel. Также они выводят всю информацию о скрытых строках и столбцах. Номера строк отображаются числами, а номера столбцов преобразуются в буквы заголовков, что очень удобно.

Как найти все скрытые строки на листе Excel с помощью макроса

У нас иметься таблица с данными по заказам, но некоторые строки листа скрыты:

Необходимо узнать сколько и какие строки скрытии от визуального анализа таблицы заказов. По умолчанию Excel не располагает таким инструментом, который смог бы решить данную задачу в пару кликов мышкой. Вручную выполнить задачу можно, но сложно. Особенно если после отображения скрытых строк нам нужно снова их скрывать. Кроме того, лист может быть защищен от изменений паролем. Оптимальным решением данной задачи будет написание собственного макроса для отображения информации о скрытых строках.

Чтобы написать свой макрос откройте редактор кода макроса: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

В редакторе вставьте новый модуль выбрав инструмент «Insert»-«Module» и введите в него этот код:

Sub HiddenLinesInfo()
Dim i As Long
Dim text As String
Dim pervoj As String
text = «В данном листе скрыты следующие строки: »
For i = 1 To ActiveSheet.Rows.Count
If ActiveSheet.Rows(i).Hidden = True Then
If pervoj = «» Then
pervoj = i
End If
Else
If pervoj <> «» Then
text = text & vbNewLine & pervoj & «:» & i — 1
pervoj = «»
Else
If i > ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row Then
Exit For
End If
End If
End If
Next
MsgBox text
End Sub

Теперь если в таблице заказов необходимо получить информацию о скрытых строках, тогда выберите инструмент для запуска макроса: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«HiddenLinesInfo»-«Выполнить».

В результате после запуска макроса отобразиться сообщение с информацией о всех скрытых строках таблицы заказов.

Описание исходного VBA-кода для поиска скрытых строк

В начале данного кода объявляются сразу 3 переменные:

  1. i – счетчик циклов.
  2. text – содержит текст для текущего сообщения информации о скрытых строках.
  3. pervoj – номер первой скрытой строки в группе скрытых строк.

В начале тела кода макроса для переменной text присваиваем начало текста сообщения. После выполняется цикл, в котором проверяться по очереди все строки в пределах используемого диапазона листа. И определяется какие из них скрытые. Если текущая строка является скрытой, значит запускается проверка значения переменной pervoj. Если в переменную еще не было присвоено ни одно значение, тогда для нее присваивается номер первой скрытой строки в отдельной группе скрытых строк. Дальше проверяется и выполняется следующее условие. Если проверяемая строка не является скрытой и переменная pervoj уже содержит в своем значении номер первой скрытой сроки, тогда выполняется целый ряд следующих операций:

  1. К тексту в переменной text дописывается (с новой строки) номер первой скрытой строки из текущей группы скрытых строк.
  2. К тексту в переменной text дописывается двоеточие и номер последней строки из текущей группы строк. Данное значение взято из счетчика цикла текущее числовое значение в переменной i-1.
  3. Удаляется значение из переменной pervoj. Таким образом создается возможность для запуска этих же операций для следующей группы скрытых строк.

В конце кода макроса выполняются инструкции для последнего условия. Если проверяемая текущая строка не является скрытой и находиться ниже последней ячейки используемого диапазона листа, тогда выполняется выход из цикла проверки строк на скрытость.

Примечание. Последняя ячейка используемого диапазона листа – это последняя ячейка, которая имеет любое изменение: новое значение, новый формат отображения значений, измененный цвет заливки тип границ. И максимально отдаленная от первой ячейки листа A1.

В самом конце макроса вызывается сообщение в теле которого должно содержаться текстовое значение из переменной text.

Если исходная таблица не содержит ни одной скрытой строки, тогда после запуска макроса будет отображаться только первая строка текста из переменной text: «В данном листе скрыты следующие строки:»

Такое сообщение для данной ситуации является немного ошибочным. Если нужно сделать так, чтобы при отсутствии скрытых строк в таблице макрос отобразил другой текст сообщения, нужно задекларировать еще одну булевою переменную HidViz логического типа Boolean:

Dim HidViz As Boolean

В ней будет содержаться одно из двух традиционных логических значений True or Fasle (истина или ложь), в зависимости от того будет ли таблица содержать хотя-бы одну скрытую строку или нет. Далее после строки кода макроса:

If ActiveSheet.Rows(i).Hidden = True Then

дописываем инструкцию изменяющую логическое значение для переменной HidViz:

Дополнительно в конце кода перед строкой:

добавьте инструкции для изменения текста сообщения на альтернативный, в тому случаи если не найдено ни одной скрытой строки в исходной таблице:

If HidViz = False Then text = «На текущем листе нет ни одной скрытой строки!»

Полная версия измененного кода макроса выглядит так:

Sub HiddenLinesInfo()
Dim i As Long
Dim text As String
Dim pervoj As String
Dim HidViz As Boolean
text = «В данном листе скрыты следующие строки: »
For i = 1 To ActiveSheet.Rows.Count
If ActiveSheet.Rows(i).Hidden = True Then
HidViz = True
If pervoj = «» Then
pervoj = i
End If
Else
If pervoj <> «» Then
text = text & vbNewLine & pervoj & «:» & i — 1
pervoj = «»
Else
If i > ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row Then
Exit For
End If
End If
End If
Next
If HidViz = False Then text = «На текущем листе нет ни одной скрытой строки!»
MsgBox text
End Sub

Результат действия измененного макроса в тому случаи если скрытые строки отсутствуют:

Поиск скрытых столбцов на листе Excel используя VBA-макрос

Но что если необходимо сделать так чтобы макрос показывал информацию не о скрытых строках, а и о скрытых столбцах таблицы:

В таком случае сделаем так:

  1. Скопируйте выше описанный код макроса для отображения информации о скрытых строках в этот же модуль и переименуйте его на «HiddenColumnInfo».
  2. Измените тексты сообщений, а именно измените по смыслу слова «строки» на «столбцы».
  3. В коде измените все свойства где встречается Rows на Columns.
  4. Измените строку для отображения текста сообщения с информацией о скрытых столбцах. Ведь заголовки столбцов у нас отображаются буквами, а не числами. Для этого воспользуемся строкой кода, которая умеет возвращать букву столбца VBA. Поэтому вместо строки:

pervoj = Split(Cells(1, i).Address, «$»)(1)

a вместо строки для вывода сообщения:

text = text & vbNewLine & pervoj & «:» & i – 1

пишем модифицированный код генерации сообщений с буквами для заголовков столбцов:

text = text & vbNewLine & pervoj & «:» & Split(Cells(1, i — 1).Address, «$»)(1)

Код макроса для получения информации о скрытых столбцах в таблице выглядит следующим образом:

Sub HiddenColumnInfo()
Dim i As Long
Dim text As String
Dim pervoj As String
Dim HidViz As Boolean
text = «В данном листе скрыты следующие столбцы: »
For i = 1 To ActiveSheet.Columns.Count
If ActiveSheet.Columns(i).Hidden = True Then
HidViz = True
If pervoj = «» Then
pervoj = Split(Cells(1, i).Address, «$» )(1)
End If
Else
If pervoj <> «» Then
text = text & vbNewLine & pervoj & «:» & Split(Cells(1, i — 1).Address, «$» )(1)
pervoj = «»
Else
If i > ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column Then
Exit For
End If
End If
End If
Next
If HidViz = False Then text = «На текущем листе нет ни одного скрытого столбца!»
MsgBox text
End Sub

Пример работы макроса HiddenColumnInfo в действии:

Обратите внимание что теперь вместо числовых номеров, в сообщении отображаются буквы заголовков столбцов. Это очень удобно и правильно!

Таким образом мы создали новый макрос, который предназначен для работы со скрытыми столбцами. За основу использовали предыдущий код макроса.

В этот же модуль можно написать еще один 3-тий макрос, который будет вызывать поочередно эти два макроса описаны в данном примере. Одним словом, с помощью простейшего кода VBA выполним запуск двух макросов из другого макроса Excel:

Sub HiddenLineColumnInfo()
HiddenLinesInfo
HiddenColumnInfo
End Sub

Этот макрос сначала позволит нам получить всю информацию о скрытых строках, а потом и о скрытых столбцах таблицы в один клик мышкой. Теперь нам не нужно по отдельности запускать оба макроса, достаточно лишь запустить их из «РАЗРАБОТЧИК»-«Код»-«Макросы»-«HiddenLineColumnInfo»-«Выполнить».

Источник

Скрыть/показать столбцы/строки по кнопке

карандаш

Дата: Пятница, 08.02.2013, 15:01 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Добрый день, эксельчане (или экселевцы?)))

подобная тема уже была (http://www.excelworld.ru/forum/2-968-1), но тут немного другой ракурс

есть книга с листками. Нужно скрыть/показать некоторые столбцы.
для этого можно завести две кнопки «показать подробнее» и «скрыть подробности» (удобство в наглядности, неудобство в необходимости плодить пару кнопок на каждом листе)
можно назначить этим макросам горячие клавиши (удобство/неудобство противоположные предыдущему варианту)
(был бы рад, если возможно реализовать оба варианта, чтобы попробовать на практике что лучше)

т.к. хотелось бы решить задачу в общем виде, то примера не привожу, а вместо этого ввожу доп.условие
отводим первую строку (потом еë скрываем, чтобы не мешалась) в качестве носителя аргументов для макроса (или подпрограммы)
в этой строке ячейки могут быть пустыми или непустыми
если ячейка непуста, тостолбец, в котором она находится попадает под действие макроса

таким образом, пометив некоторые столбцы мы можем их скрывать или показывать (по нажатию на одну из волшебных кнопок или функциональных клавиш)

это код из упомянутой похожей темы. Но у меня не получилось его модифицировать под описанные условия.

[vba]

Код

Option Explicit
Sub скрыть_столбцы()
Dim ch, i, k, sh As Variant
For Each sh In ThisWorkbook.Worksheets
        For i = 5 To 16
            ch = 5: k = 5
            Do While sh.Cells(ch, i) <> «»
                If sh.Cells(ch, i) = 0 Then
                    k = k + 1
                End If
                ch = ch + 1
            Loop
            If k = ch Then sh.Cells(1, i).EntireColumn.Hidden = True
        Next i
Next
End Sub

[/vba]

Сообщение отредактировал карандашПятница, 08.02.2013, 15:05

 

Ответить

AlexM

Дата: Пятница, 08.02.2013, 16:00 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Цитата (карандаш)

пометив некоторые столбцы мы можем их скрывать или показывать

Подскажите, как вы хотели помечать скрытые столбцы?

Пробую угадать.
Пометить перед скрытием — любую ячейку столбца сделать активной
Пометить для показа — выделить ячейки, которые слева и справа от скрытого столбца
Коды макросов
[vba]

Код

Sub скрыть_столбец()
ActiveCell.Columns.EntireColumn.Hidden = True
End Sub
Sub показать_столбец()
Selection.Columns.EntireColumn.Hidden = False
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
End Sub

[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMПятница, 08.02.2013, 16:26

 

Ответить

_Boroda_

Дата: Пятница, 08.02.2013, 16:46 |
Сообщение № 3

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Насколько я понял, в первую строку в нужные столбцы вводим любой символ и жмем кнопку. Столбцы скрываются. Второй раз жмем кнопку — столбцы показываются.
[vba]

Код

Private Sub Cb1_Click()
On Error Resume Next
     rc_ = Rows(«1:1»).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants, 23).Count
     If Err.Number > 0 Then
         Rows(«1:1»).SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = False
         Cb1.Caption = «Съесть»
     Else
         Rows(«1:1»).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants, 23).EntireColumn.Hidden = True
         Cb1.Caption = «Выплюнуть»
     End If
Sheets(«Лист1»).Select
On Error GoTo 0
End Sub

[/vba]

К сообщению приложен файл:

Ckr_1.xlsm
(19.7 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 18:40 |
Сообщение № 4

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Цитата (_Boroda_)

Насколько я понял, в первую строку в нужные столбцы вводим любой символ и жмем кнопку. Столбцы скрываются. Второй раз жмем кнопку — столбцы показываются.

абсолютно точно!!!
даже одной кнопкой можно делать!
)))

Сообщение отредактировал карандашПятница, 08.02.2013, 19:33

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 18:44 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

AlexM,
kak вручную скрывать я знаю, но скрывать надо выборочно и много
Борода верно понял.

Сообщение отредактировал карандашПятница, 08.02.2013, 19:32

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 19:07 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

_Boroda_,

жаль, нельзя удалить сообщение
перепечатаю его полностью

в кнопке есть свойство :акселератор:
можно туда вписать букву и тогда при ее нажатии с Alt будет кнопка «нажиматься»

а можно произвольную горячую клавишу назначить? без двойного нажатия?

Сообщение отредактировал карандашПятница, 08.02.2013, 19:36

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 19:12 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

ПРОШУ ПРОЩЕНИЯ
немного поторопился
«режим конструктора» решает вопросы с размером и положением кнопки

но остальные вопросы остались:
— можно ли перенести код в общий для книги раздел «Модули»
— можно ли управлять наличием/отсутствием кнопки на листе с помощью нехитрых комбинаций с ячейкой А1

===================================

почему не получается назначить макрос Бороды на кнопку, сделанную из вставленной «фигуры»
кнопка не видит макроса, хотя он есть

Сообщение отредактировал карандашПятница, 08.02.2013, 19:36

 

Ответить

_Boroda_

Дата: Пятница, 08.02.2013, 19:54 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Цитата (карандаш)

с ячейкой было бы даже веселее

Ну тогда веселитесь.

В файле еще написал, как редактировать кнопку и оставил ее код. Если не нужно — удалите.

Вы уже все переписали.
Посмотрите сейчас. Появятся вопросы — пишите.

К сообщению приложен файл:

Ckr_2.xlsm
(23.2 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 20:30 |
Сообщение № 9

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

_Boroda_,
с кнопкой разобрался
даже после тестирования решил, что удобнее менять не надпись, а цвет фона и шрифта
Cb1.BackColor и ForeColor

нa практике оказалось, что одной кнопки мало — хотелось бы подглядывать на некоторые столбцы (не все)
т.е. режим подглядывание имеет два режима — полный и усеченный.
при этом видна только одна кнопка «усеченного» подсматривания. А вторая появляется (через управление свойством Визибле), когда активизирован режим полуподсматривания, как наиболее часто используемый.
Знание — сила! (точнее — моща! «Knowledgе is power» © )
————
а кнопка-ячейка не работает sad

и можно ли все таки засунуть кнопку в общий раздел книги
потому как кнопка стоит на листе, который создается копированием предыдущего для каждого месяца
а кнопка работает для первого. При копировании листа имя листа в макросе не меняется
может его совсем убрать?

Сообщение отредактировал карандашПятница, 08.02.2013, 20:36

 

Ответить

_Boroda_

Дата: Пятница, 08.02.2013, 20:35 |
Сообщение № 10

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А режим конструктора включен?

Цитата (карандаш)

а кнопка-ячейка не работает

Нужно выключить


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 20:38 |
Сообщение № 11

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Цитата (_Boroda_)

А режим конструктора включен?
Цитата (карандаш писал(а)):
а кнопка-ячейка не работает
Нужно выключить

я не очень сообразительный, конечно, но кнопку конструктора выключил
не помогло
ничего не происходит при нажатию на ячейку
у меня 2010 эксел

Сообщение отредактировал карандашПятница, 08.02.2013, 20:38

 

Ответить

карандаш

Дата: Пятница, 08.02.2013, 22:34 |
Сообщение № 12

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

_Boroda_,
про ячейку
не зная сокращений, не допер, что такое ПМК
да, правой кнопкой мыши работает
т.к. это непривычно, а переделать на левую кнопку не смог, то остановился на первоначальном варианте — со «страшной» кнопкой
тем более понял как поменять у нее цвета фона и шрифта

=======================================
про «страшную» кнопку

убрал имя листа из последней команды — вроде работает, но после нажатия переходит на первый лист
вообще убрал строку с командой выбора листа
[vba]

Код

Sheets(«Лист1»).Select

[/vba]
все заработало как надо

потеря данной строки вреда не принесет?
—————————————————
аппетит приходит во время… программирования
решил дополнить показ/сокрытие второй кнопкой, которая бы выборочно показывала столбцы (анализируя символ в ячейке)
(есть столбцы, куда приходится часто заглядывать — это столбцы с рабочей информацией — остальные скрываемые столбцы содержат промежуточную инфу для вычислений и несут исключительно функцию физуального контроля правильности вычислений на протяжении всего этапа вычисления)

подскажите, что нужно изменить в подпрограмме, чтобы действие производилось только со столбцами, которые содержат, например, буковку «b»

Сообщение отредактировал карандашСуббота, 09.02.2013, 00:21

 

Ответить

_Boroda_

Дата: Суббота, 09.02.2013, 21:31 |
Сообщение № 13

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А может, все проще сделать, вообще без макросов — посмотрите, есть такая штука, «Группировка» называется, живет на вкладке «Данные». Один раз поставить, где нужно и скрывай-показывай что хочешь. Вроде, максимальный уровень вложенности 7, если я правильно помню.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

карандаш

Дата: Воскресенье, 10.02.2013, 12:01 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Цитата (_Boroda_)

есть такая штука, «Группировка» называется

гениально!
как всë простое )))

но чтобы не терять освоенную технологию, подскажите — в том макросе, который написан,
1. как исправить то, что когда скрываешь «сигнальную» строку (с пустыми/непустыми ячейками) он перестает работать — не видит содержимое строки
2. можно переделать этот макрос под конкретную букву?

спасибо

 

Ответить

карандаш

Дата: Воскресенье, 10.02.2013, 15:20 |
Сообщение № 15

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Цитата (_Boroda_)

Так файл-то положите свой

пардон (думал, достаточно того, что в этой ветке уже выложен макрос)

вот файл

«под конкретную букву» — это чтобы старый макрос скрывал/показывал все, а новый работал только со столбцами, где в сигнальных ячейках определенная буква

попробуйте скопировать (продублировать) лист
скопированный вместе с листом макрос будет так же работать как задумывалось?
я от туда удалил строку
[vba]

Код

Sheets(«Лист1»).Select

[/vba]

2. там есть ещë строки с «х» в первом столбце цветные
хотелось бы скрывать строки по условию: в первом столбце ячейка непуста + в столбце «К» ячейка <> 0
(тягомотно после копирования постоянно удалять пустые строки)

2.2 а можно сделать кнопку, при нажатии на которую область J11:L21 копировалась в буфер обмена?
тогда вообще была бы красота — кликнул на фамилию в верхнем списке, в данной области все просчиталось
потом кликнул на кнопку копирования и, пожалуйста тебе, вставляй в другое место готовые, причесанные данные!

p.s. я бы сам сделал (делаю, что получается, в чем начал разбираться), но не до конца понимаю механизм работы некоторых макросов
благодаря подсказкам и помощи на этом форуме значительно оптимизировал и сделал универсальным очень много расчетов
что очень сильно теперь экономит время и повышает производительность
в хелпе такого не прочитаешь, а ту на примерах осваиваешь приемы, которые помогают с минимальными усилиями представлять информацию в удобном наглядном виде

К сообщению приложен файл:

Ckr_3.xlsm
(24.9 Kb)

Сообщение отредактировал карандашВоскресенье, 10.02.2013, 15:30

 

Ответить

_Boroda_

Дата: Понедельник, 11.02.2013, 17:54 |
Сообщение № 16

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Немного измененная концепция. В файле все написал. п. 2 посмотрю дома — сейчас уже бежать пора. Посмотрел. Не понял фразы «кликнул на фамилию в верхнем списке, в данной области все просчиталось». И вообще оба пункта 2 не совсем ясны. Сделать не вопрос, просто уточните, что нужно.

По Вашему пред. посту
Sheets(«Лист1»).Select
Конечно убить. Затесался, когда я делал этот макрос сразу для всех листов книги.
Потом перечитал ТЗ и понял, что не нужно. Все грохнул, а эту строку забыл.

Дубляж листа — конечно будет работать.

сделал так:
По даблклику скрывается/показывается все
По правому клику срывается/показывается только «b»
Если делать по одинарному левому клику, то плохо получается — чтобы повторить запуск макроса, приходится перещелкиваться на другую ячейку
На всякий случай код оставил, но закомментировал (зелененький он такой весь).

К сообщению приложен файл:

Ckr_5.xlsm
(24.4 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Муля2010

Дата: Понедельник, 11.02.2013, 18:59 |
Сообщение № 17

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Здраствуйте!
Простите меня ради Бога!
Хотел спросить, и все не решался.
Но все таки.
У меня в 2003, и, кнопка не работает (не активируется), и щелчок по ячейке тоже ноу, не срабатівает
Почему?.


С ув. Муля!

 

Ответить

_Boroda_

Дата: Понедельник, 11.02.2013, 20:36 |
Сообщение № 18

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Во специально ради Вас только что поставил себе 2003 офис. Ничего дополнительного не включал.
Единственно, что сделал — в Сервис — Макрос — Безопасность — поставил «Средняя» и переоткрыл файл. На вопрос о макросах конечно ответил, что включить.
Все работает.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Муля2010

Дата: Понедельник, 11.02.2013, 21:53 |
Сообщение № 19

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


_Boroda_,
пробовал также у себя, не работает.


С ув. Муля!

 

Ответить

Гость

Дата: Понедельник, 11.02.2013, 22:26 |
Сообщение № 20

Значит не судьба

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Vba excel показать скрытые строки
  • Vba excel показать окно
  • Vba excel показать все скрытые листы
  • Vba excel поиск ячейки по содержимому
  • Vba excel поиск ячейки в строке