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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 20:13   #11
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от RAN. Посмотреть сообщение
Тормозят не коды, а обработка нажатия кнопки. Попробуйте для сравнения нажимать не мышом, а клавишей Enter.
Попробовал, точно так и есть. Через Enter всё работает быстро.
Может знаете как это можно исправить ?

Интересуюсь, т.к. у меня в реальной Форме много кнопок, комбобоксов и листбоксов.
Mjaso вне форума Ответить с цитированием
Старый 03.06.2012, 21:41   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Код:
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If i < UBound(v) Then i = i + 1 Else i = 2
TextBox1 = v(i, 1)
End Sub
Т.е. на даблклик то же код, что и на клик.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.06.2012, 22:07   #13
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Код:
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If i < UBound(v) Then i = i + 1 Else i = 2
TextBox1 = v(i, 1)
End Sub
Т.е. на даблклик то же код, что и на клик.
Большое спасибо всем, особенно Hugo 121. Про Double Click я бы сам не допёр точно. Это из разряда народных хитростей
А с MsgBox разобрался так : Нашёл последнюю строчку в столбце и указал выдавать MsgBox при условии совпадения данных в последней строчке и TextBox.

Ещё раз Спасибо всем и Хорошего вечера !
Вложения
Тип файла: rar Test5 (cikl spuska)2.rar (16.7 Кб, 11 просмотров)

Последний раз редактировалось Mjaso; 03.06.2012 в 22:09.
Mjaso вне форума Ответить с цитированием
Старый 03.06.2012, 22:17   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Ну даблклик это просто - если быстро кликать, то второй клик считается за двойной, и не обрабатывается, если для этого нет кода. Т.е. пропускается - выглядит как тормоза.
Никакой хитрости.
P.S. И чего мне особенно - я ни строчки кода целиком не написал
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.06.2012, 21:27   #15
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Приветствую ещё раз !

Появились сложности с интеграцией кода в свою реальную Форму. Не могу сказать с чем это связано, может вы подскажете. Я делал так: Скопировал кнопку в свою Excel таблицу. В режиме конструктора "зашёл" в кнопку и создал макрос "go" в котором я прописал тот же макрос что и в Test файле. Теперь в VBA появился Module1, там:
Option Explicit
Public i&
Sub go()
UserForm1.Show
End Sub

Далее, я вставил Dim v() вне всех Private Sub. Потом в Private Sub UserForm_Initialize() вставляю первую часть кода а в Private Sub CommandButton_Page_Other_Next_Produ ct_Click() (это моя инициализирующая кнопка) в неё вставляю вторую.
В результате получаю: При загрузке Формы появляется "1", а после нажатия кнопки CommandButton Форма вообще выгружается и выбрасывает в VBA. После повторной инициации Формы начинает с "1".
Переменных таких же я нигде не использовал - так что конфликта вроде не должно быть.

Подскажите, знающие люди, где "собака порыта" ?
Mjaso вне форума Ответить с цитированием
Старый 05.06.2012, 21:40   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Нужно видеть файл.
И ещё - я пару раз сталкивался, что в форме публичную переменную нужно было использовать как Module1.i, а не просто i. Почему так - не выяснял.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.06.2012, 22:01   #17
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Нужно видеть файл.
И ещё - я пару раз сталкивался, что в форме публичную переменную нужно было использовать как Module1.i, а не просто i. Почему так - не выяснял.
Файл большой - это одно из моих первых детищей

Все макросы в UserFormMain
Переменные - одна в Module1 другая в самом начале Формы UserFormMain. Первая часть:
With Sheets("List")
v = .Range("F1", .Cells(.Rows.Count, "F").End(xlUp)).Value
End With
If i < 2 Then i = 2
Txt_Page_Main_d_sku = v(i, 1)
Находится в самом начале Private Sub UserForm_Initialize()

а вторая часть:
Dim LastRow As Long
If i < UBound(v) Then i = i + 1 Else i = 2
Txt_Page_Main_d_sku = v(i, 1)
LastRow = Sheets("List").Range("F65536").End( xlUp).Row
If Txt_Page_Main_d_sku = Range("F" & LastRow) Then MsgBox "Закончились записи в столбце (Distributor) sku, пожалуйста, зарядите ещё."
Находится в самом начале Private Sub CommandButton_Page_Other_Next_Produ ct_Click()

Motherboards.xlsm в формате Office 2010
Motherboards2.xls в формате Office 2003

Последний раз редактировалось Mjaso; 06.06.2012 в 00:38.
Mjaso вне форума Ответить с цитированием
Старый 05.06.2012, 22:10   #18
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Форма работает так (в кратце) : вводится любой SKU (любой знак) и внизу кнопкой "=> " жмётся до конца. (В этот момент в етой же закладке в TextBoxe "d.sku" появляется "(1) ....." Далее после нажатия зелёной кнопки "Next Products" (кнопка ввода) кнопками назад возвращаемся на первую закладку и там в TextBoxe "d.sku" уже должно появится "(2)......" и.т.д до 7-ми.
Mjaso вне форума Ответить с цитированием
Старый 05.06.2012, 22:34   #19
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Не могу сказать, что вы там задумали и что не работает.
Могу только констатировать - код из этой темы работает правильно.
RAN. вне форума Ответить с цитированием
Старый 05.06.2012, 22:41   #20
Mjaso
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от RAN. Посмотреть сообщение
Не могу сказать, что вы там задумали и что не работает.
Могу только констатировать - код из этой темы работает правильно.
В том -то и фишка - я же сам специально для этого и делал тестовый файл - всё работало нормально. Сегодня день потерял пробуя все вариации - но чой-то конец дня а результата "0". Потому и решил ещё раз на форуме совета спросить.
Mjaso вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод покоординатного спуска новичочек C++ Builder 0 02.05.2011 15:44
метод градиентного спуска Альмира Visual C++ 0 03.04.2011 15:38
алгоритм покоординатного спуска mimi_mimi Паскаль, Turbo Pascal, PascalABC.NET 0 20.06.2010 18:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34