Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Запустить макрос с другого листа, VBA
 
Друзья, нужна ваша помощь.

Написан макрос пример ниже:
Код
Sub Goalsick()
With Workbooks("Книга1.xlsm" ).Worksheets("Лист1" )
If (Range("D27")= 1) Then
Range("H6").GoalSeek Goal:=0.262, ChangingCell:=Range("E25" )
ElseIf (Range( "D27" ) = 2) Then
Range("H6" ).GoalSeek Goal:=0.298, ChangingCell:=Range("E25" )
End If
End With
End Sub
Также в листе прописан следующий макрос:
Код
Private Sub Worksheet_Calculate()
With Workbooks("Книга1.xlsm" ).Worksheets("Лист1" )
Application.EnableEvents = False
If Range("E31")  = 0 Then Range("E25" ) = 200000
Application.EnableEvents = True
End With
End Sub

На "Листе 1" есть кнопка которая запускает макрос, необходимо сделать чтобы на Листе 2 была кнопка которая тоже запускает этот макрос, создаю кнопку привязываю к этому макросу, кнопка не запускает макрос. Пробовал без кнопки запустить макрос находясь на Листе 2 макрос также не запускается. Честно не силен в VBA.

Спасибо всем за помощь заранее!
Изменено: Exlevel - 26 Мар 2015 18:49:30
 
Цитата
Exlevel написал: создаю кнопку привязываю к этому макросу, кнопка не запускает макрос
Вы уверены? Вы ставили точку останова на Sub Goalsick и останова не было?
В процедуре есть оператор With, но он фактически не работает, поскольку Range без указания принадлежности относятся к активному листу. Надо:
Код
Sub Goalsick()
With Workbooks("Книга1.xlsm").Worksheets("Лист1")
  If .Range("D27") = 1 Then
    .Range("H6").GoalSeek Goal:=0.262, ChangingCell:=.Range("E25")
  ElseIf .Range("D27") = 2 Then
    .Range("H6").GoalSeek Goal:=0.298, ChangingCell:=.Range("E25")
  End If
End With
End Sub


PS "Goalsick" - "целевой больной" :)
 
Спасибо большое за помощь! Я признаюсь совсем чайник в VBA. теперь все работает)

Шутку юмора про целевого больного вы оценили:D
Изменено: Exlevel - 27 Мар 2015 12:09:45
Страницы: 1
Читают тему (гостей: 1)