Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

макрос выдает ошибку

Автор bermax18, 04.07.2011, 19:38

« назад - далее »

bermax18

День добрый.
Нужна ваша помощь вот в чем.

есть макрос, но как только ставлю защиту листа он выкидывает окно,
нельзя установить свойство Hidden класса Range.javascript:void(0);
что я не так делаю, возможно что-то с макросом напутал я в них не селен.
Собственно сам макрос.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Cells(1, Target.Column)
[AE1].EntireColumn.Hidden = Range("AE6") = 0
End With
End Sub

заранее спасибо.

Шпец Докапыч

Нужно либо при защите листа разрешить *форматирование строк, либо программно снимать/ставить защиту (см. тут).
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

kuklp

#2
И в дополнение:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Cells(1, Target.Column)
[AE1].EntireColumn.Hidden = Range("AE6") = 0
End With
End Sub
это бред. 2-я и 4-я строка ни к чему. И вообще в таком виде лучше использовать событие Worksheet_Calculate .
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

bermax18

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

kuklp

Цитата: bermax18 от 04.07.2011, 21:31
спасибо за подсказку, но не могли бы вы тогда посоветовать
как как лучше это сделать, или еще лучше скинуть пример,
желательно с учетом всех требований.
Да нет,  мы Вам пример рисовать не будем. "Лучше уж вы к нам"("Бриллиантовая рука"). По секрету: был бы Ваш пример сначала - давно бы решилось. А так - ненужная переписка, иными словами флуд.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

bermax18

нужно что бы макрос был листе2, то есть фев.
спасибо за помощь.

kuklp

#6
Читал Вашу формулу в [AE1]. Долго думал... Классика:-) А серьезно, См. решение. Повесил на событие активации листа. Можно на открытие книги, не важно.
Private Sub Worksheet_Activate()
   Columns("AE").Hidden = Day(DateSerial(Year(Date), 3, 1) - 1) = 28
End Sub
Так будет брать сегодняшний год.
Если надо указанный, то
   Columns("AE").Hidden = Day(DateSerial(Year([C7]), 3, 1) - 1) = 28
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

kuklp

А тут с защищенным листом. Обратите внимание, что вместо Вашей формулы в стороках дат.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

bermax18

Огромное человеческое спасибо!javascript:void(0);
Я вот только не понял как работает защита листа (макроса не нашел)
не могли бы Вы меня просветить в этом?
в будущем пригодится javascript:void(0);

kuklp

Зачем там макрос? Я вручную поставил, без пароля. Можете снять и при попытке поставить снова посмотрите, какие там галки стоят(См. пост Шпеца Докапыча).
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

bermax18

Сразу не обратил внимания javascript:void(0);
Спасибо за вашу помощь.

kuklp

#11
Если когда все же захочется, почитайте справку по Protect Method. Особое внимание уделите параметру UserInterfaceOnly. При его значении -1, макрос будет работать и без снятия защиты. Да, и сходите по ссылке Шпеца Докапыча(« Ответ #1 : 04 Июль 2011, 20:41:01 »). Там есть пример кода снятия-постановки защиты.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771