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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 00:52   #1
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию check box_где вызывать продедуру ?

Ребят, у меня совсем простой вопрос про чек бокс, понимаю,что туплю, однако я до этого никогда не сталкивалась с этим флажком в VBA.
Если на первом листе установлена галочка в чек боксе, то после основной обработки макроса, нужно сохранить одни листы, если галочка не стоит,-то другие.

Я делала так:
в Лист 1:
Код:
Private Sub CheckBox1_Click()
    UserForms.Add(Application.Caller).Show
End Sub
и еще одну процедуру в лист1, которую надо вызывать в макросе обработки ( командой call cheeeck) :

Код:
Sub cheeeck()
Dim n_name As String
Dim wsSh As Object
If CheckBox1.Value = True Then
Application.ScreenUpdating = False
f_name = ActiveWorkbook.Name
f_path = ActiveWorkbook.Path
Sheets("Proceeding").Select
n_name = "Proceeding" & ".xls"
Sheets(Array("Лист2", "Лист3")).Select
Sheets(Array("Лист2", "Лист3")).Copy
Workbooks(1).Activate
else :
Sheets(Array("Лист4", "Лист5")).Select
Sheets(Array("Лист4", "Лист5")).Copy
End Sub
или наоборот в главной процедуре макроса написать функцию Sub cheeeck()
При обоих случаях дебаг, - в первом случае он ругается на непонятную процедуру cheeeck (она находится в Листе1), во втором собственно на сам ЧекБокс.

Как быть ? подскажите пожалуйста! очень нужно!
Peace!

Последний раз редактировалось Blame; 29.12.2011 в 00:59.
Blame вне форума Ответить с цитированием
Старый 29.12.2011, 00:58   #2
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию

примерный внешний вид формы
Изображения
Тип файла: jpg ajhvf1.jpg (76.0 Кб, 52 просмотров)
Peace!
Blame вне форума Ответить с цитированием
Старый 29.12.2011, 01:01   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

В общем случае это может выглядеть так:
Код:
Private Sub CheckBox1_Click()
    If CheckBox1 Then
        Макрос1
    Else
        Макрос2
    End If
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 29.12.2011, 01:16   #4
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию

СУПЕР!!!!!!! СУПЕР !!!!! СУПЕР!!!!!
СПАСИБО!!!
ПОЛУЧИЛОСЬ!!!!
Работает, родимая!!!
СПАСИБО СПАСИБО СПАСИБО!!!!!!!
=*
Peace!
Blame вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в DOS принято вызывать процедуры Namolem Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 17.11.2011 06:11
переменные или что-нибудь, чтоб не вызывать сто раз JavaScript Ihavoker HTML и CSS 3 27.01.2011 06:26
Как вызывать функции одного или др. класса по определённому спецификатору? GerNick Общие вопросы C/C++ 2 20.12.2010 16:34
Как в С# вызывать вторую форму по F1 Linore Общие вопросы .NET 20 15.02.2010 09:35
Check box ruavia3 Microsoft Office Excel 6 17.11.2009 13:31