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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2011, 11:05   #1
Vceznayka
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 27
По умолчанию при нажатии кнопки 1 запускался модуль 2 а в нем переменная n была равна 1,

Ситуация такова
Имеется форма (User Forms) с кнопками
1 2 3 . . . 53
Имеется модуль (Module2) с программой Sub Program () … end Sub
В программе в зависимости от переменной n ссылается на фил

Sub Program45(n)

n = ???????

Windows(n & "in.xls").Activate
Rows("3:3000").Select
Selection.Copy
Windows("a-trafic_2011.xlsm").Activate
Worksheets("46in").Activate
Rows("3:3000").Select
ActiveSheet.Paste
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
.
.
.
End Sub


Необходима
при нажатии кнопки 1 запускался модуль 2 а в нем переменная n была равна 1,
при нажатии кнопки 2 запускался модуль 2 а в нем переменная n была равна 2,
.
.
.
при нажатии кнопки 53 запускался модуль 2 а в нем переменная n была равна53,


Заранее благодарю!!!

Последний раз редактировалось Vceznayka; 23.11.2011 в 11:35.
Vceznayka вне форума Ответить с цитированием
Старый 23.11.2011, 13:45   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А вам не лень было рисовать 53 кнопки?
Проще ведь сделать выпадающий список с номерами от 1 до 53,
и рядом кнопку Запуск.

PS: Можно и проще сделать - но надо видеть ваш файл Excel
(и ваше разъяснение, для чего всё это нужно)
EducatedFool вне форума Ответить с цитированием
Старый 23.11.2011, 14:24   #3
Vceznayka
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 27
По умолчанию

Ребята мне прост надо знать как с User Forms
Private Sub CommandButton1_Click()
End Sub

Отправить значение n = 1 в Module2
Sub Program45(n)
. ..
End Sab
Vceznayka вне форума Ответить с цитированием
Старый 23.11.2011, 14:31   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Можно так:
по кнопке выполняем
Program45 1
или
Program45 2
или
Program45 3
и т.д.

Код:
Sub tt()
Program45 2
End Sub

Sub Program45(n)
MsgBox n
End Sub
Или другой вариант - n объявляем публичной, а по кнопке задаём значение для n и затем выполнаем Program45() без параметра (в этой процедуре используем публичную переменную с присвоенным извне значением).

Но конечно можно количество кнопок сократить.
Если не нужно подобие шахматной доски конечно...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 23.11.2011 в 14:35.
Hugo121 вне форума Ответить с цитированием
Старый 23.11.2011, 14:32   #5
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Не только 53 кнопки - еще и по процедуре (одинаковой) на каждую!
Пишите в TexBox название файла и передавайте этот текст в макрос. Можно выбирать число в ComboBox.
vikttur вне форума Ответить с цитированием
Старый 23.11.2011, 14:46   #6
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Загнать кнопки в массив и будет у каждой кнопки свой индекс.
Написать одну процедуру для массивов кнопок и передавать в модуль индекс кнопки
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 23.11.2011, 15:01   #7
Vceznayka
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 27
По умолчанию

Написал
Private Sub CommandButton1_Click()
Program45 1
Unload Me
End Sub
Дает ошибку Wrong number of arguments or invalid property assignment
Потом попробовал так
Private Sub CommandButton1_Click()
Application.Run Program45, n = 1
Unload Me
End Sub

тоже ничего, дает ошибку Expected Function or variable
Vceznayka вне форума Ответить с цитированием
Старый 23.11.2011, 15:07   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Читали мысли вслух?
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
PS: Можно и проще сделать - но надо видеть ваш файл Excel (и ваше разъяснение, для чего всё это нужно)
vikttur вне форума Ответить с цитированием
Старый 23.11.2011, 15:07   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я выше написал проверенный код - больше без Вашего файла сказать нечего.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.11.2011, 15:13   #10
Vceznayka
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 27
По умолчанию

Еще раз повтарюсь, Ребята мне прост надо знать как с User Forms при нажатии кнопки 1
Private Sub CommandButton1_Click()
????? n=1
End Sub

Отправить значение n = 1 в Module2
Sub Program45(???)
что тут вписать чтобы было n=1


. ..
End Sab
Vceznayka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста при нажатии кнопки Payalnick JavaScript, Ajax 8 27.08.2011 21:59
Изменение цвета кнопки при ее нажатии RedRec Microsoft Office Excel 2 04.08.2011 09:11
Прога вылетает при нажатии кнопки.. Дмитрий142 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 15.03.2011 08:36
появление Edit при нажатии кнопки Саня_ Компоненты Delphi 4 06.03.2011 21:45
Ошибка при нажатии кнопки Skynet91 БД в Delphi 1 08.02.2010 19:45