Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 13:50   #1
albih
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 25
По умолчанию Макрос для всех листов

Уважаемые знатоки! Помогите подправить макрос, чтоб он работал на всех листах книги.

Код:
Const r = "c3:bp3"
Dim x As Range 
'1-6; 1;2;3;4;5;6

Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> [a17].Address Then Exit Sub
    Select Case [a17]
    Case "1-6"
        Range(r).EntireColumn.Hidden = False
    Case ""
        HideColumns
    Case Else
        HideColumns
        Set x = Range(r).Find([a17].Value, , , xlPart, , , False)
        If Not x Is Nothing Then ShowColumns x
    End Select
End Sub

Sub HideColumns()
    Range(r).EntireColumn.Hidden = True
End Sub

Sub ShowColumns(ByRef cell As Range)
   cell.Resize(, 10).EntireColumn.Hidden = False
End Sub
albih вне форума Ответить с цитированием
Старый 12.04.2012, 13:58   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

а что если
Код:
Range(r).
заменить на
Код:
Target.Range(r).
и вообще, для такого рода макросов стоит воздерживаться от безусловных обращений. стараться всё через параметры делать...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 12.04.2012, 14:09   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

видимо, то, что написали Вы следует выложить в модуль книги в процедуре:
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object,  ByVal Source As Range)
    ' runs when a sheet is changed
End Sub
чтобы не прописывать в модуль каждого листа.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.04.2012, 14:16   #4
albih
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 25
По умолчанию

Спасибо! Будем разбираться.
albih вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для всех листов as-is Microsoft Office Excel 8 10.02.2011 21:15
Макрос Сводной Таблиц для всех листов Richard123 Microsoft Office Excel 4 21.01.2011 12:53
Макрос для всех листов в книге Rok Microsoft Office Excel 5 26.04.2010 08:55
Макрос записанный вручную для всех листов as-is Microsoft Office Excel 1 14.03.2010 14:35