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

Вход

Регистрация

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

 

= Мир MS Excel/Как скрыть столбцы с нулевыми начениями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как скрыть столбцы с нулевыми начениями (Автоматически скрыть столбцы с нулевым значением,)
Как скрыть столбцы с нулевыми начениями
polly Дата: Воскресенье, 23.09.2012, 17:52 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

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

Есть книга из 12 листов, на каждом листе отображаются обороты по Дебету и Кредиту счетов.
Есть куча счетов (отображены в столбцах), где не было движения и соответственно значения =0.
Как сделать на каждом листе, чтобы счет с нулевым значением не отображался? Автоматически скрывался?

Есть одно НО: Если по счету есть ненулевые данные допустим по Дт , то столбец этого же счета по Кт, не должен быть скрыт (в примере - по стету 104 есть ненулевая сумма по Дт, столбец по Кт этого же счета не должен быть скрыт).

С макросами пока, к сожалению, не знакома. Наверное это делается с помощью макросов.
Если можно - чтобы была кнопка на каждом листе - "скрыть столбцы" , "отобразить столбцы".

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

С уважением к форумчанам.
К сообщению приложен файл: 0317372.xls (86.0 Kb)
 
Ответить
СообщениеДобрый день, уважаемые форумчане!
Помогите пожалуйста!
Просмотрела в поиске форум, но решения моей задачи не нашла.

Есть книга из 12 листов, на каждом листе отображаются обороты по Дебету и Кредиту счетов.
Есть куча счетов (отображены в столбцах), где не было движения и соответственно значения =0.
Как сделать на каждом листе, чтобы счет с нулевым значением не отображался? Автоматически скрывался?

Есть одно НО: Если по счету есть ненулевые данные допустим по Дт , то столбец этого же счета по Кт, не должен быть скрыт (в примере - по стету 104 есть ненулевая сумма по Дт, столбец по Кт этого же счета не должен быть скрыт).

С макросами пока, к сожалению, не знакома. Наверное это делается с помощью макросов.
Если можно - чтобы была кнопка на каждом листе - "скрыть столбцы" , "отобразить столбцы".

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

С уважением к форумчанам.

Автор - polly
Дата добавления - 23.09.2012 в 17:52
Dragokas Дата: Воскресенье, 23.09.2012, 20:31 | Сообщение № 2
Группа: Проверенные
Ранг: Новичок
Сообщений: 14
Репутация: 25 ±
Замечаний: 0% ±

2003
Здравствуйте!

Код макроса такой


Для начала нужно этим макросам разрешить запускаться:

Офис 2003
Сервис->Макрос->Безопасность->Низкая (или средняя)

Офис 2007/2010
Главное Меню (крайнее левое на ленте в виде кружочка) -> Параметры Excel -> Центр управления безопасностью -> Параметры центра управления безопасностью -> Параметры макросов -> уровень безопасности "Низкий".

Либо используйте приложенный мною скрипт (правой кнопкой мыши - запуск от имени администратора).

Дальше, открываем Excel с Вашими расчетами.
Нажимаем левый ALT+F8 набираем любое слово, нажимаем {Enter}.
В появившемся окошке выделяем все, удаляем. В это же окошко копируем приведенный выше код.
Закрываем окно редактора, сохраняемся.

Для запуска макроса нажмите левый Alt+F8, {Enter}.

Либо создаете кнопку с панели инструментов (правая кнопка - выбрать "формы")
Кнопка в виде кнопки :), назначить макрос - и выбираете из списка.

Как он должен действовать - на все листы или на конкретный?
К сообщению приложен файл: 8484263.rar (0.5 Kb)


Сообщение отредактировал Dragokas - Воскресенье, 23.09.2012, 20:37
 
Ответить
СообщениеЗдравствуйте!

Код макроса такой


Для начала нужно этим макросам разрешить запускаться:

Офис 2003
Сервис->Макрос->Безопасность->Низкая (или средняя)

Офис 2007/2010
Главное Меню (крайнее левое на ленте в виде кружочка) -> Параметры Excel -> Центр управления безопасностью -> Параметры центра управления безопасностью -> Параметры макросов -> уровень безопасности "Низкий".

Либо используйте приложенный мною скрипт (правой кнопкой мыши - запуск от имени администратора).

Дальше, открываем Excel с Вашими расчетами.
Нажимаем левый ALT+F8 набираем любое слово, нажимаем {Enter}.
В появившемся окошке выделяем все, удаляем. В это же окошко копируем приведенный выше код.
Закрываем окно редактора, сохраняемся.

Для запуска макроса нажмите левый Alt+F8, {Enter}.

Либо создаете кнопку с панели инструментов (правая кнопка - выбрать "формы")
Кнопка в виде кнопки :), назначить макрос - и выбираете из списка.

Как он должен действовать - на все листы или на конкретный?

Автор - Dragokas
Дата добавления - 23.09.2012 в 20:31
polly Дата: Воскресенье, 23.09.2012, 21:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Dragokas - спасибо за помощь!

Хотелось бы, чтобы действовал макрос на каждом листе, но по моему ручному запуску на определенном листе (во время работы, допустим на 1-м листе - 2й, 3й и т.д не трогал, а когда я переходила на 2й лист, то сама запускала его действие). Так можно?
Если нет - то главное, чтобы работал.

Я попробовала сделать, как написано, но в примере, когда пытаюсь применить макрос показывает ошибку "1004" вот на этой строке:

Set Cols = Union(IIf(Cols Is Nothing, Sh.Columns(x), Cols), Sh.Columns(x))

Может я что-то не то сделала?
Или Ваш файл с *.cmd *.reg нужно в определенній каталог переложить?
Или выделить все столбцы и строки, где он должен работать??

Что я не так делаю???
 
Ответить
СообщениеDragokas - спасибо за помощь!

Хотелось бы, чтобы действовал макрос на каждом листе, но по моему ручному запуску на определенном листе (во время работы, допустим на 1-м листе - 2й, 3й и т.д не трогал, а когда я переходила на 2й лист, то сама запускала его действие). Так можно?
Если нет - то главное, чтобы работал.

Я попробовала сделать, как написано, но в примере, когда пытаюсь применить макрос показывает ошибку "1004" вот на этой строке:

Set Cols = Union(IIf(Cols Is Nothing, Sh.Columns(x), Cols), Sh.Columns(x))

Может я что-то не то сделала?
Или Ваш файл с *.cmd *.reg нужно в определенній каталог переложить?
Или выделить все столбцы и строки, где он должен работать??

Что я не так делаю???

Автор - polly
Дата добавления - 23.09.2012 в 21:38
Dragokas Дата: Понедельник, 24.09.2012, 01:39 | Сообщение № 4
Группа: Проверенные
Ранг: Новичок
Сообщений: 14
Репутация: 25 ±
Замечаний: 0% ±

2003
Нет, Вы все правильно сделали.

Вот вариант для отдельного листа:

Код для кнопки:


Прикрепил книгу с кнопками. Вот картинка о том, как повесить на новый лист кнопку с кодом: Скопировать кнопку
Все вместил в одну кнопку.

polly
, дальше можете не читать -:)
Создавал их с панели "Элементы управления", а не "Формы", так как те кнопки имеют свойство
автоматом неправильно переопределять расположение макроса при переименовании книги.

В первом варианте:
ошибка была в том, что Excel 2003 версии не позволяет хранить в одной переменной данные о ячейках разных листов как объекта.
Требовалось сместить свойство сокрытия колонок и очистку переменной в позицию до оператора Next Sh.


Сообщение отредактировал Dragokas - Понедельник, 24.09.2012, 01:42
 
Ответить
СообщениеНет, Вы все правильно сделали.

Вот вариант для отдельного листа:

Код для кнопки:


Прикрепил книгу с кнопками. Вот картинка о том, как повесить на новый лист кнопку с кодом: Скопировать кнопку
Все вместил в одну кнопку.

polly
, дальше можете не читать -:)
Создавал их с панели "Элементы управления", а не "Формы", так как те кнопки имеют свойство
автоматом неправильно переопределять расположение макроса при переименовании книги.

В первом варианте:
ошибка была в том, что Excel 2003 версии не позволяет хранить в одной переменной данные о ячейках разных листов как объекта.
Требовалось сместить свойство сокрытия колонок и очистку переменной в позицию до оператора Next Sh.

Автор - Dragokas
Дата добавления - 24.09.2012 в 01:39
polly Дата: Понедельник, 24.09.2012, 04:26 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Dragokas, БОЛЬШУЩЕЕ СПАСИБО!!!

Получилось!!!!! Столбцы скрылись по Alt+F8.

Только с кнопкой я не поняла, у меня на листе ее нет и скопировать ее соответственно не могу wink

Что я неправильно сделала?
 
Ответить
СообщениеDragokas, БОЛЬШУЩЕЕ СПАСИБО!!!

Получилось!!!!! Столбцы скрылись по Alt+F8.

Только с кнопкой я не поняла, у меня на листе ее нет и скопировать ее соответственно не могу wink

Что я неправильно сделала?

Автор - polly
Дата добавления - 24.09.2012 в 04:26
KuklP Дата: Понедельник, 24.09.2012, 07:09 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Мож я чего спросонок не учел? Вариант:
[vba]
Code
Public Sub ColHide()
      Dim r As Range, c As Range
      Set r = [g6:dh19]: On Error Resume Next
      Set c = r.SpecialCells(2, 1)
      If Err Then Err.Clear: Exit Sub
      r.EntireColumn.Hidden = -1: c.EntireColumn.Hidden = 0
End Sub

Public Sub ColUnHide()
      [g6:dh19].EntireColumn.Hidden = 0
End Sub
[/vba]
Если при отсутствии значений нужно скрыть все счета, то строку:
     If Err Then Err.Clear: Exit Sub
надо закомментировать.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 24.09.2012, 07:16
 
Ответить
СообщениеМож я чего спросонок не учел? Вариант:
[vba]
Code
Public Sub ColHide()
      Dim r As Range, c As Range
      Set r = [g6:dh19]: On Error Resume Next
      Set c = r.SpecialCells(2, 1)
      If Err Then Err.Clear: Exit Sub
      r.EntireColumn.Hidden = -1: c.EntireColumn.Hidden = 0
End Sub

Public Sub ColUnHide()
      [g6:dh19].EntireColumn.Hidden = 0
End Sub
[/vba]
Если при отсутствии значений нужно скрыть все счета, то строку:
     If Err Then Err.Clear: Exit Sub
надо закомментировать.

Автор - KuklP
Дата добавления - 24.09.2012 в 07:09
Dragokas Дата: Понедельник, 24.09.2012, 12:00 | Сообщение № 7
Группа: Проверенные
Ранг: Новичок
Сообщений: 14
Репутация: 25 ±
Замечаний: 0% ±

2003
KuklP, я SpecialCells недолюбливаю ))
Да и как-то не совсем так он работает, как просили в условиях. См. мой файл.

polly, посмотрите на скриншот, там указано, где нажать на панеле инструментов в панеле "Элементы управления",
чтобы получить такую кнопку.



Ах да, мой фейл - не прикрепил книгу, торопился, исправляюсь.

polly, хочу Вам дать совет не открывать разные неизвестные скрипты от всяких новичков (ну, кроме меня :-)
К сообщению приложен файл: 4513671.jpg (14.4 Kb) · excelworld-poll.zip (30.7 Kb)


Сообщение отредактировал Dragokas - Понедельник, 24.09.2012, 12:00
 
Ответить
СообщениеKuklP, я SpecialCells недолюбливаю ))
Да и как-то не совсем так он работает, как просили в условиях. См. мой файл.

polly, посмотрите на скриншот, там указано, где нажать на панеле инструментов в панеле "Элементы управления",
чтобы получить такую кнопку.



Ах да, мой фейл - не прикрепил книгу, торопился, исправляюсь.

polly, хочу Вам дать совет не открывать разные неизвестные скрипты от всяких новичков (ну, кроме меня :-)

Автор - Dragokas
Дата добавления - 24.09.2012 в 12:00
DJ_Marker_MC Дата: Понедельник, 24.09.2012, 13:06 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

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


Сообщение отредактировал marker_mc - Понедельник, 24.09.2012, 13:11
 
Ответить
СообщениеВсем привет. Весьма интересная тема на мой взгляд, только было бы интереснее чтоб данный фильтр работал примерно таким же образом как стд фильтр экселя, тоесть с возможностью выбора того что хочу скрыть и в каком диапазоне, другими словами транспорировать стд фильтр (сделать полноценный фильтр для фильтрации столбцов) ))) может найдутся умельцы VBA способные реализовать такую надстроечку? Я не скажу что это безумно необходимая вещь, поскольку частое использование вряд ли будет нужным, но для запаса на всякий случай, было бы неплохо иметь такую возможность.

Автор - DJ_Marker_MC
Дата добавления - 24.09.2012 в 13:06
polly Дата: Вторник, 25.09.2012, 01:00 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Все получилось!
Кнопочка работает! Класс!!!
Большое спасибо!
Заодно и немного ближе подошла к изучению макросов.

Dragokas - спасибо, что так все понятно разжевал, действительно, с Вашей помощью стало понятнее!!! smile
 
Ответить
СообщениеВсе получилось!
Кнопочка работает! Класс!!!
Большое спасибо!
Заодно и немного ближе подошла к изучению макросов.

Dragokas - спасибо, что так все понятно разжевал, действительно, с Вашей помощью стало понятнее!!! smile

Автор - polly
Дата добавления - 25.09.2012 в 01:00
Дучи Дата: Вторник, 27.11.2012, 15:40 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Помогите, пожалуйста.
В приложенном файле пример статистики по моделям беговых лыж.
Задача: по кнопке скрыть стобцы, где в ячейках суммирования (строка 2) ноль.
Т.е., чтобы столбцы H, M и т.д. скрылись.

Познаний в VBA очень мало, пытался как-то приспособить макрос от Dragokas, но там выдает ошибку 91.
Очень надеюсь на помощь.
К сообщению приложен файл: Atomic_2013-201.rar (40.7 Kb)
 
Ответить
СообщениеДобрый день.
Помогите, пожалуйста.
В приложенном файле пример статистики по моделям беговых лыж.
Задача: по кнопке скрыть стобцы, где в ячейках суммирования (строка 2) ноль.
Т.е., чтобы столбцы H, M и т.д. скрылись.

Познаний в VBA очень мало, пытался как-то приспособить макрос от Dragokas, но там выдает ошибку 91.
Очень надеюсь на помощь.

Автор - Дучи
Дата добавления - 27.11.2012 в 15:40
Dragokas Дата: Среда, 28.11.2012, 01:09 | Сообщение № 11
Группа: Проверенные
Ранг: Новичок
Сообщений: 14
Репутация: 25 ±
Замечаний: 0% ±

2003
Что такое ячейки суммирования?
Если это четко определенные колонки, тогда список имен (номеров) столбцов в студию, пожалуйста.

Если все подряд, то:
[vba]
Code
Dim RA as Range
application.screenupdating=false
For Each RA in Range(Cells(2,Columns("H").Column), cells(2,columns.count).end(xltoleft))
     if Ra.value=0 then Ra.entirecolumn.hidden=true
next
application.screenupdating=true
[/vba]
 
Ответить
СообщениеЧто такое ячейки суммирования?
Если это четко определенные колонки, тогда список имен (номеров) столбцов в студию, пожалуйста.

Если все подряд, то:
[vba]
Code
Dim RA as Range
application.screenupdating=false
For Each RA in Range(Cells(2,Columns("H").Column), cells(2,columns.count).end(xltoleft))
     if Ra.value=0 then Ra.entirecolumn.hidden=true
next
application.screenupdating=true
[/vba]

Автор - Dragokas
Дата добавления - 28.11.2012 в 01:09
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как скрыть столбцы с нулевыми начениями (Автоматически скрыть столбцы с нулевым значением,)
  • Страница 1 из 1
  • 1
Поиск:

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