Всем привет! Наверное, мой вопрос очень просто решается, но я уже пару часов ниче не могу сделать. Есть выпадающий список в ячейке на листе номер 1. В зависимости от выбранного значения в списке, макросом скрывается один из столбцов на этой вкладке. На листе номер 2, значение ячейки связано со значением в ячейке с выпадающим списком на листе 1. Несмотря на то, что визуально значение на листе 2 меняется при выборе значений в списке на листе 1, чтобы макрос на листе 2 заработал и столбец на листе 2 скрылся, нужно обновить значение связвнной ячейки на листе 2 вручную (щелкнуть курсором по строке формул и нажать enter). Мне нужно сделать, чтобы столбец скрывался на вкладке 2, после того как выбрано значение в выпадающем списке на листе 1. Можно ли просто в макросе для листа 2 прописать чтобы он ссылался на значение ячейки на листе 1? Типо вот так.. Помогите, пожалуйста. у меня Excel 2007
Код
If на листе 1 Target.Column = 3 And Target.Row = 14 And Target.Value = "AAC" Then
Sanja написал: 'Повесьте' макрос на событие активации Лист2
Спасибо за быстрый ответ! Я попытался, но я реально оч плохо в этом разбираюсь. Выдает ошибку "run-time 424. object required". Можно попросить Вас скинуть полностью текст макроса для листа 2? Заранее спасибо!
temniy, а зачем отслеживать изменения на втором листе? Отслеживайте на первом и обрабатывайте второй лист. P.S. Зачем в макросе (первый лист) дважды указываете одну и ту же целевую ячейку?
Private Sub Worksheet_Activate()
On Error Resume Next
Application.ScreenUpdating = False
Select Case Worksheets("Sheet1").Range("C10")
Case "AAC"
Me.Columns.EntireColumn.Hidden = False
Me.Columns("E").EntireColumn.Hidden = True
Case "Hollow/Thermal"
Me.Columns.EntireColumn.Hidden = False
Me.Columns("D").EntireColumn.Hidden = True
Case Else
Me.Columns.EntireColumn.Hidden = False
End Select
Application.ScreenUpdating = True
End Sub
Согласие есть продукт при полном непротивлении сторон
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C10")) Is Nothing Then
Columns("D:E").Hidden = False
Select Case Target
Case Is = "AAC"
Columns("E").Hidden = True
'Здесь нужные действия со вторым листом
Case Is = "Hollow/Thermal"
Columns("D").Hidden = True
'Здесь нужные действия со вторым листом
End Select
End If
End Sub
@Sanja , @Юрий М Спасибо большое обоим, все работает! Ток теперь появился один маленький нюанс... У меня есть еще одна вкладка, которая как бы вспомагательная с данными и по идее должна будет быть скрыта или запаролена. На листе 2 строятся диаграммы, данные для которых берутся с листа 3. На листе 3 такой же макрос написан, как и на листе 2, скрывающий столбцы в зависимости от выбранного в выпадающем списке на первом листе. Но для того, чтобы данные на диаграмме на листе 2 обновились, надо обящательно кликнуть на лист 3, там срабатывает макрос, и тогда диаграммы обновляются. Можно ли как-то обойтись без "клика" по листу 3?
Я могу перенести данные с третей вкладки на вторую и спрятать внизу, тогда все норм работает, но подразумевается вкладки "tool" и "commercial" будут видны всем, и мне не хотелось бы, что бы эти данные были видны. В идеале лист 3 должен быть спрятан, или запаролен хотя бы