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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть/показать столбцы/строки по кнопке - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть/показать столбцы/строки по кнопке
Скрыть/показать столбцы/строки по кнопке
карандаш Дата: Вторник, 12.02.2013, 22:09 | Сообщение № 21
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (_Boroda_)
И вообще оба пункта 2 не совсем ясны.


1. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную

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

3. нужна команда выделения и копирования в буфер обмена области К12:L21 (это для данного файла - в рабочем файле область будет другая)
(команда будет добавлена в существующий макрос в дополнение к делающимся расчетам, результаты которых попадают в указанную область)
 
Ответить
Сообщение
Цитата (_Boroda_)
И вообще оба пункта 2 не совсем ясны.


1. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную

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

3. нужна команда выделения и копирования в буфер обмена области К12:L21 (это для данного файла - в рабочем файле область будет другая)
(команда будет добавлена в существующий макрос в дополнение к делающимся расчетам, результаты которых попадают в указанную область)

Автор - карандаш
Дата добавления - 12.02.2013 в 22:09
карандаш Дата: Среда, 13.02.2013, 16:48 | Сообщение № 22
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub skr_stolb_b()
Application.ScreenUpdating = 0
      b_ = "b"
      bn_ = WorksheetFunction.CountIf(Rows("1:1"), b_)
      If bn_ = 0 Then Exit Sub
      On Error Resume Next
          x_ = Rows("1:1").SpecialCells(xlCellTypeVisible).Find(What:="b").Column
      On Error GoTo 0
      If x_ > 0 Then
          c1_ = Cells(1, Columns.Count).End(xlToLeft).Column
          For i = 2 To c1_
              If Cells(1, i) = b_ Then Columns(i).EntireColumn.Hidden = True
          Next i
      Else
          For j = 1 To bn_
              cn_ = WorksheetFunction.Match(b_, Range(Cells(1, cn1_ + 1), Cells(1, Columns.Count)), 0)
              cn1_ = cn_ + cn1_
              Columns(cn1_).EntireColumn.Hidden = False
          Next j
      End If
Application.ScreenUpdating = 1
End Sub
[/vba]

это код скрытия/показа столбцов, отмеченных определëнным знаком

1.
можно ли в строке [vba]
Код
x_ = Rows("1:1").SpecialCells(xlCellTypeVisible).Find(What:="b").Column
[/vba]
заменить "b" на b_ ?

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

вот код вызывающий эту функцию
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Address(0, 0) = "A2" Then
          Cancel = 1
          Run "skr_stolb_b"
      End If
End Sub
[/vba]
как передать аргумент при вызове функции?
попытка завести новую переменную и использовать еë в качестве аргумента привела к ошибке

3.
вы использовали кнопку Active X
кнопка обычная сразу спрашивает назначение макроса
как назначить на актив-кнопку действие?
чем они отличаются эти две кнопки (кроме того, что одна - полноценный объект класса кнопки с полями, методами, событиями, а вторая - просто картинка, на которую можно назначить макрос)
в использовании эти отличия (какие именно?) как-то сказываются?

прошу прощения - файл в 2010
по правилам прикрепляю 2003
К сообщению приложен файл: Ckr_51.xlsm (32.6 Kb) · Ckr_51.xls (64.0 Kb)


Сообщение отредактировал карандаш - Среда, 13.02.2013, 17:01
 
Ответить
Сообщение[vba]
Код
Sub skr_stolb_b()
Application.ScreenUpdating = 0
      b_ = "b"
      bn_ = WorksheetFunction.CountIf(Rows("1:1"), b_)
      If bn_ = 0 Then Exit Sub
      On Error Resume Next
          x_ = Rows("1:1").SpecialCells(xlCellTypeVisible).Find(What:="b").Column
      On Error GoTo 0
      If x_ > 0 Then
          c1_ = Cells(1, Columns.Count).End(xlToLeft).Column
          For i = 2 To c1_
              If Cells(1, i) = b_ Then Columns(i).EntireColumn.Hidden = True
          Next i
      Else
          For j = 1 To bn_
              cn_ = WorksheetFunction.Match(b_, Range(Cells(1, cn1_ + 1), Cells(1, Columns.Count)), 0)
              cn1_ = cn_ + cn1_
              Columns(cn1_).EntireColumn.Hidden = False
          Next j
      End If
Application.ScreenUpdating = 1
End Sub
[/vba]

это код скрытия/показа столбцов, отмеченных определëнным знаком

1.
можно ли в строке [vba]
Код
x_ = Rows("1:1").SpecialCells(xlCellTypeVisible).Find(What:="b").Column
[/vba]
заменить "b" на b_ ?

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

вот код вызывающий эту функцию
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Address(0, 0) = "A2" Then
          Cancel = 1
          Run "skr_stolb_b"
      End If
End Sub
[/vba]
как передать аргумент при вызове функции?
попытка завести новую переменную и использовать еë в качестве аргумента привела к ошибке

3.
вы использовали кнопку Active X
кнопка обычная сразу спрашивает назначение макроса
как назначить на актив-кнопку действие?
чем они отличаются эти две кнопки (кроме того, что одна - полноценный объект класса кнопки с полями, методами, событиями, а вторая - просто картинка, на которую можно назначить макрос)
в использовании эти отличия (какие именно?) как-то сказываются?

прошу прощения - файл в 2010
по правилам прикрепляю 2003

Автор - карандаш
Дата добавления - 13.02.2013 в 16:48
карандаш Дата: Среда, 13.02.2013, 17:22 | Сообщение № 23
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
переделал функцию скрыть/показать столбцы на скрыть показать строки
не работает
вот интуитивно переделанный код
[vba]
Код
Sub show_hide_rows()
Application.ScreenUpdating = 0
        b_ = "x"
        bn_ = WorksheetFunction.CountIf(Columns("A:A"), b_)
        If bn_ = 0 Then Exit Sub
        On Error Resume Next
            x_ = Columns("A:A").SpecialCells(xlCellTypeVisible).Find(What:=b_).Row
        On Error GoTo 0
        If x_ > 0 Then
            c1_ = Cells(1, Rows.Count).End(xlUp).Row
            For i = 2 To c1_
                If Cells(1, i) = b_ Then Rows(i).EntireRow.Hidden = True
            Next i
        Else
            For j = 1 To bn_
                cn_ = WorksheetFunction.Match(b_, Range(Cells(1, cn1_ + 1), Cells(1, Rows.Count)), 0)
                cn1_ = cn_ + cn1_
                Rows(cn1_).EntireRow.Hidden = False
            Next j
        End If
Application.ScreenUpdating = 1
End Sub
[/vba]

выдает ошибку на строке [vba]
Код
c1_ = Cells(1, Rows.Count).End(xlUp).Row
[/vba]
файл прилагаю
К сообщению приложен файл: Ckr_52.xls (66.0 Kb)


Сообщение отредактировал карандаш - Среда, 13.02.2013, 17:27
 
Ответить
Сообщениепеределал функцию скрыть/показать столбцы на скрыть показать строки
не работает
вот интуитивно переделанный код
[vba]
Код
Sub show_hide_rows()
Application.ScreenUpdating = 0
        b_ = "x"
        bn_ = WorksheetFunction.CountIf(Columns("A:A"), b_)
        If bn_ = 0 Then Exit Sub
        On Error Resume Next
            x_ = Columns("A:A").SpecialCells(xlCellTypeVisible).Find(What:=b_).Row
        On Error GoTo 0
        If x_ > 0 Then
            c1_ = Cells(1, Rows.Count).End(xlUp).Row
            For i = 2 To c1_
                If Cells(1, i) = b_ Then Rows(i).EntireRow.Hidden = True
            Next i
        Else
            For j = 1 To bn_
                cn_ = WorksheetFunction.Match(b_, Range(Cells(1, cn1_ + 1), Cells(1, Rows.Count)), 0)
                cn1_ = cn_ + cn1_
                Rows(cn1_).EntireRow.Hidden = False
            Next j
        End If
Application.ScreenUpdating = 1
End Sub
[/vba]

выдает ошибку на строке [vba]
Код
c1_ = Cells(1, Rows.Count).End(xlUp).Row
[/vba]
файл прилагаю

Автор - карандаш
Дата добавления - 13.02.2013 в 17:22
карандаш Дата: Среда, 13.02.2013, 17:28 | Сообщение № 24
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
карандаш,
файл не тот приложил - без правки ошибок
К сообщению приложен файл: 0868247.xls (66.0 Kb)
 
Ответить
Сообщениекарандаш,
файл не тот приложил - без правки ошибок

Автор - карандаш
Дата добавления - 13.02.2013 в 17:28
_Boroda_ Дата: Среда, 13.02.2013, 17:29 | Сообщение № 25
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
1. Нужно. Это я недоглядел. А вообще, именно так и задумывалось.
2. О какой функции речь? В приведенном коде функций нет вообще. Это код реакции на нажатие правой кнопки мыши. То есть, это только одно действие. Как Вы собираетесь повесить на него несколько вариантов скрытия? Не, ну конечно можно, но тогда нужно прописать еще условие для выбора.
Проще наделать кнопок, на каждую повесить макрос skr_stolb_b, skr_stolb_o, skr_stolb_y, ..., в каждом из которых присвоить значению b_ соответствующую букву (именно поэтому и задумывалось то, что написано выше - см. п. 1).
3. На обычную кнопку просто вешайте макрос skr_stolb_b
Цитата (карандаш)
как назначить на актив-кнопку действие?

какое действие, кроме нажатия, Вы хотите назначить на кнопку? Это кнопка, она создана для того, чтобы на нее нажимать. А нажатие там действует автоматом.
Цитата (карандаш)
чем они отличаются эти две кнопки (кроме того, что одна - полноценный объект класса кнопки с полями, методами, событиями, а вторая - просто картинка, на которую можно назначить макрос)
Тем и отличаются - для работы с первой нужно VBA (в явной или скрытой форме), а для работы с другой - штатные средства самого Excel.

Цитата (карандаш)
. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную

И не должна. С помощью SpecialCells(xlCellTypeVisible) мы работаем только в видимых ячейках. Файл так и задумывался. что некто ставит нужные буквы и по ним скрывает/показывает. Ели нужно скрыть - сделайте белый шрифт или формат ;;;

Код для скрытия строк
[vba]
Код
Sub ttt()
Application.ScreenUpdating = 0
      r0_ = 12
      r1_ = Range("A" & Rows.Count).End(xlUp).Row
      If r1_ < r0_ Then GoTo A
      c1_ = 1
      c2_ = 11
      z_ = "x"
      For i = r0_ To r1_
          If Cells(i, c1_) = z_ And Cells(i, c2_) = 0 Then Rows(i).EntireRow.Hidden = True
      Next i
A:
Application.ScreenUpdating = 1
End Sub
[/vba]
Код для копирования диапазона
[vba]
Код
    Range("K12:K21").Copy
      Range("K12:K21").SpecialCells(xlCellTypeVisible).Copy
[/vba]
Первая стока тупо копирует весь диапазон, вторая копирует только видимые ячейки - я не знаю, как надо.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение1. Нужно. Это я недоглядел. А вообще, именно так и задумывалось.
2. О какой функции речь? В приведенном коде функций нет вообще. Это код реакции на нажатие правой кнопки мыши. То есть, это только одно действие. Как Вы собираетесь повесить на него несколько вариантов скрытия? Не, ну конечно можно, но тогда нужно прописать еще условие для выбора.
Проще наделать кнопок, на каждую повесить макрос skr_stolb_b, skr_stolb_o, skr_stolb_y, ..., в каждом из которых присвоить значению b_ соответствующую букву (именно поэтому и задумывалось то, что написано выше - см. п. 1).
3. На обычную кнопку просто вешайте макрос skr_stolb_b
Цитата (карандаш)
как назначить на актив-кнопку действие?

какое действие, кроме нажатия, Вы хотите назначить на кнопку? Это кнопка, она создана для того, чтобы на нее нажимать. А нажатие там действует автоматом.
Цитата (карандаш)
чем они отличаются эти две кнопки (кроме того, что одна - полноценный объект класса кнопки с полями, методами, событиями, а вторая - просто картинка, на которую можно назначить макрос)
Тем и отличаются - для работы с первой нужно VBA (в явной или скрытой форме), а для работы с другой - штатные средства самого Excel.

Цитата (карандаш)
. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную

И не должна. С помощью SpecialCells(xlCellTypeVisible) мы работаем только в видимых ячейках. Файл так и задумывался. что некто ставит нужные буквы и по ним скрывает/показывает. Ели нужно скрыть - сделайте белый шрифт или формат ;;;

Код для скрытия строк
[vba]
Код
Sub ttt()
Application.ScreenUpdating = 0
      r0_ = 12
      r1_ = Range("A" & Rows.Count).End(xlUp).Row
      If r1_ < r0_ Then GoTo A
      c1_ = 1
      c2_ = 11
      z_ = "x"
      For i = r0_ To r1_
          If Cells(i, c1_) = z_ And Cells(i, c2_) = 0 Then Rows(i).EntireRow.Hidden = True
      Next i
A:
Application.ScreenUpdating = 1
End Sub
[/vba]
Код для копирования диапазона
[vba]
Код
    Range("K12:K21").Copy
      Range("K12:K21").SpecialCells(xlCellTypeVisible).Copy
[/vba]
Первая стока тупо копирует весь диапазон, вторая копирует только видимые ячейки - я не знаю, как надо.

Автор - _Boroda_
Дата добавления - 13.02.2013 в 17:29
карандаш Дата: Среда, 13.02.2013, 17:54 | Сообщение № 26
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (_Boroda_)
Проще наделать кнопок, на каждую повесить макрос skr_stolb_b, skr_stolb_o, skr_stolb_y, ..., в каждом из которых присвоить значению b_ соответствующую букву

да! это логично, просто, ясно, прозрачно и понятно. Это наилучшее решение
помогите его реализовать - подскажите, как передать аргумент

Цитата (_Boroda_)
какое действие, кроме нажатия, Вы хотите назначить на кнопку? Это кнопка, она создана для того, чтобы на нее нажимать. А нажатие там действует автоматом.

нажатие и надо. Когда код уже написан, то на макро-кнопку назначается легко - из выпадающего меню. У актив-кнопки не нашел где вызвать меню назначения кода на нажатие.
поищу сам

Цитата (_Boroda_)
. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную
----------
И не должна. С помощью SpecialCells(xlCellTypeVisible) мы работаем только в видимых ячейках. Файл так и задумывался.


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

вопрос:
перед сокрытием строк по составному условию сокрытия их стоит показать - вдруг там после дополнительных расчетов вместо нуля появилось число не нулевое
можно тупо скопировать цикл, убрав условия, и поставить Hiden= false
но может есть одна команда для диапазона, чтобы их открыть?


Сообщение отредактировал карандаш - Среда, 13.02.2013, 18:46
 
Ответить
Сообщение
Цитата (_Boroda_)
Проще наделать кнопок, на каждую повесить макрос skr_stolb_b, skr_stolb_o, skr_stolb_y, ..., в каждом из которых присвоить значению b_ соответствующую букву

да! это логично, просто, ясно, прозрачно и понятно. Это наилучшее решение
помогите его реализовать - подскажите, как передать аргумент

Цитата (_Boroda_)
какое действие, кроме нажатия, Вы хотите назначить на кнопку? Это кнопка, она создана для того, чтобы на нее нажимать. А нажатие там действует автоматом.

нажатие и надо. Когда код уже написан, то на макро-кнопку назначается легко - из выпадающего меню. У актив-кнопки не нашел где вызвать меню назначения кода на нажатие.
поищу сам

Цитата (_Boroda_)
. кнопка "съесть/выплюнуть" не работает, если верхнюю "сигнальную" (с "аргументами") строку скрыть или сделать нулевой высоты вручную
----------
И не должна. С помощью SpecialCells(xlCellTypeVisible) мы работаем только в видимых ячейках. Файл так и задумывался.


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

вопрос:
перед сокрытием строк по составному условию сокрытия их стоит показать - вдруг там после дополнительных расчетов вместо нуля появилось число не нулевое
можно тупо скопировать цикл, убрав условия, и поставить Hiden= false
но может есть одна команда для диапазона, чтобы их открыть?

Автор - карандаш
Дата добавления - 13.02.2013 в 17:54
_Boroda_ Дата: Среда, 13.02.2013, 20:52 | Сообщение № 27
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата (карандаш)
подскажите, как передать аргумент

Цитата (_Boroda_)
в каждом из которых присвоить значению b_ соответствующую букву

Цитата (карандаш)
У актив-кнопки не нашел где вызвать меню назначения кода на нажатие.

у кнопки актив само начало макроса для нее как пишется? Sub Cb1_Click() Слово "Клик" видите? Вот оно и отвечает за действие, по которому запускается весь нижеследующий код.
Цитата (карандаш)
но может есть одна команда для диапазона, чтобы их открыть?

Конечно. Просто показать все строки столбца А
[vba]
Код
Rows.EntireRow.Hidden = False
[/vba]
Цитата (карандаш)
лист должен иметь "защиту от дураков" (в том числе и от самого себя, случайных действий)

вот Вам защита
[vba]
Код
rivate Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Row <> 1 Then Exit Sub
      If [A1] = "Пароль" Then Exit Sub
      Target.Offset(1).Select
End Sub
[/vba]
До тех пор, пока в ячейку А2 не введено слово "Пароль", первую строку нельзя выделить.
Цитата (карандаш)
выдает ошибку на строке
c1_ = Cells(1, Rows.Count).End(xlUp).Row

Конечно. У Cells первый аргумент - строка, второй - столбец. А Вы написали так: ячейка(Строка_№_1, Столбец_с_номером_равным_количеству_строк). Строк больше, чем столбцов и такого столбца просто нет


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

Цитата (_Boroda_)
в каждом из которых присвоить значению b_ соответствующую букву

Цитата (карандаш)
У актив-кнопки не нашел где вызвать меню назначения кода на нажатие.

у кнопки актив само начало макроса для нее как пишется? Sub Cb1_Click() Слово "Клик" видите? Вот оно и отвечает за действие, по которому запускается весь нижеследующий код.
Цитата (карандаш)
но может есть одна команда для диапазона, чтобы их открыть?

Конечно. Просто показать все строки столбца А
[vba]
Код
Rows.EntireRow.Hidden = False
[/vba]
Цитата (карандаш)
лист должен иметь "защиту от дураков" (в том числе и от самого себя, случайных действий)

вот Вам защита
[vba]
Код
rivate Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Row <> 1 Then Exit Sub
      If [A1] = "Пароль" Then Exit Sub
      Target.Offset(1).Select
End Sub
[/vba]
До тех пор, пока в ячейку А2 не введено слово "Пароль", первую строку нельзя выделить.
Цитата (карандаш)
выдает ошибку на строке
c1_ = Cells(1, Rows.Count).End(xlUp).Row

Конечно. У Cells первый аргумент - строка, второй - столбец. А Вы написали так: ячейка(Строка_№_1, Столбец_с_номером_равным_количеству_строк). Строк больше, чем столбцов и такого столбца просто нет

Автор - _Boroda_
Дата добавления - 13.02.2013 в 20:52
kostR Дата: Пятница, 15.03.2013, 16:16 | Сообщение № 28
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Не силен я в макросах, поэтому прошу помочь

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

как сделать открытие/закрытие строк определенного диапазона по флажку и нельзя было скрыть если есть данные (изменения).
Зарание благодарен.

Автор - kostR
Дата добавления - 15.03.2013 в 16:16
Serge_007 Дата: Пятница, 15.03.2013, 16:20 | Сообщение № 29
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (kostR)
Не силен я в макросах

Ну а правила прочитать Вы в силах?

ЗЫ И не надо постить в чужих темах. Что за дурацкая манера?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (kostR)
Не силен я в макросах

Ну а правила прочитать Вы в силах?

ЗЫ И не надо постить в чужих темах. Что за дурацкая манера?

Автор - Serge_007
Дата добавления - 15.03.2013 в 16:20
shelesto Дата: Воскресенье, 14.04.2013, 13:03 | Сообщение № 30
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Цитата (AlexM)

Пробую угадать.


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


Сообщение отредактировал shelesto - Воскресенье, 14.04.2013, 13:05
 
Ответить
Сообщение
Цитата (AlexM)

Пробую угадать.


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

Автор - shelesto
Дата добавления - 14.04.2013 в 13:03
wild_pig Дата: Воскресенье, 14.04.2013, 18:12 | Сообщение № 31
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
[vba]
Код
Sub хавайся_в_жыта()
      Selection.EntireColumn.Hidden = True
End Sub
[/vba]


Сообщение отредактировал wild_pig - Воскресенье, 14.04.2013, 18:17
 
Ответить
Сообщение[vba]
Код
Sub хавайся_в_жыта()
      Selection.EntireColumn.Hidden = True
End Sub
[/vba]

Автор - wild_pig
Дата добавления - 14.04.2013 в 18:12
shelesto Дата: Воскресенье, 14.04.2013, 21:57 | Сообщение № 32
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Спасибо!
 
Ответить
СообщениеСпасибо!

Автор - shelesto
Дата добавления - 14.04.2013 в 21:57
shelesto Дата: Воскресенье, 14.04.2013, 22:53 | Сообщение № 33
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

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


А если необходимо сделать скрытие столбцов по выделению любых ячеек и той же кнопкой отобразить все скрытые? Пробовал оптимизировать код, но, видимо какого-то слова не хватает...

[vba]
Код
Private Sub Cb1_Click()
On Error Resume Next
Cb1.Caption = "Съесть"
Selection.Columns.EntireColumn.Hidden = True

Selection.Columns.EntireColumn.Hidden = False
Cb1.Caption = "Выплюнуть"

On Error GoTo 0
End Sub
[/vba]
 
Ответить
Сообщение
Цитата (_Boroda_)
Насколько я понял, в первую строку в нужные столбцы вводим любой символ и жмем кнопку. Столбцы скрываются. Второй раз жмем кнопку - столбцы показываются.


А если необходимо сделать скрытие столбцов по выделению любых ячеек и той же кнопкой отобразить все скрытые? Пробовал оптимизировать код, но, видимо какого-то слова не хватает...

[vba]
Код
Private Sub Cb1_Click()
On Error Resume Next
Cb1.Caption = "Съесть"
Selection.Columns.EntireColumn.Hidden = True

Selection.Columns.EntireColumn.Hidden = False
Cb1.Caption = "Выплюнуть"

On Error GoTo 0
End Sub
[/vba]

Автор - shelesto
Дата добавления - 14.04.2013 в 22:53
Vrangtop Дата: Понедельник, 20.05.2013, 12:26 | Сообщение № 34
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, возникла схожая задача, и в результате теста возник вопрос почему если в 1 строке указать формулу то столбец уже не скрывается.
 
Ответить
СообщениеДобрый день, возникла схожая задача, и в результате теста возник вопрос почему если в 1 строке указать формулу то столбец уже не скрывается.

Автор - Vrangtop
Дата добавления - 20.05.2013 в 12:26
Serge_007 Дата: Понедельник, 20.05.2013, 13:00 | Сообщение № 35
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Это Вы про какой именно код сейчас говорите?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЭто Вы про какой именно код сейчас говорите?

Автор - Serge_007
Дата добавления - 20.05.2013 в 13:00
Vrangtop Дата: Понедельник, 20.05.2013, 13:06 | Сообщение № 36
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

На примере ячейки E1
К сообщению приложен файл: 3866295.xlsm (28.6 Kb)
 
Ответить
СообщениеНа примере ячейки E1

Автор - Vrangtop
Дата добавления - 20.05.2013 в 13:06
Ильдар Дата: Суббота, 07.12.2013, 21:18 | Сообщение № 37
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Разрешите продолжить тему.
Можно ли пронумеровать столбцы, например 1, 2, 3, 4, 5 и т.д., и создать несколько кнопок (макросов) с скрытием/отображением необходимых столбцов?
При нажатии на кнопку "Отчет № 1" отображаются только столбцы под номерами 1, 5, 10, 29.
При нажатии на кнопку "Отчет № 2" отображаются только столбцы под номерами 1, 5, 15, 25.
При нажатии на кнопку "Все" отображаются все столбцы 1-30.
[admin]
Разрешите продолжить тему
Не разрешу. Читайте правила форума[/admin]
 
Ответить
СообщениеРазрешите продолжить тему.
Можно ли пронумеровать столбцы, например 1, 2, 3, 4, 5 и т.д., и создать несколько кнопок (макросов) с скрытием/отображением необходимых столбцов?
При нажатии на кнопку "Отчет № 1" отображаются только столбцы под номерами 1, 5, 10, 29.
При нажатии на кнопку "Отчет № 2" отображаются только столбцы под номерами 1, 5, 15, 25.
При нажатии на кнопку "Все" отображаются все столбцы 1-30.
[admin]
Разрешите продолжить тему
Не разрешу. Читайте правила форума[/admin]

Автор - Ильдар
Дата добавления - 07.12.2013 в 21:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть/показать столбцы/строки по кнопке
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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