Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Плавное увеличение значения в окне - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Плавное увеличение значения в окне (Макросы/Sub)
Плавное увеличение значения в окне
Паштет Дата: Суббота, 17.09.2022, 11:32 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток!
Делаю имитатор контроля скорости на форме и стоит задача нажав на кнопку (СommаndButton), скорость в окошке (textbox) начала подниматься с заданным ускорением a от значения v1 до значения v2. Грубо говоря, чтобы значение скорости за 5 секунд поднялось с 0 до 60.


Сообщение отредактировал Паштет - Суббота, 17.09.2022, 11:33
 
Ответить
СообщениеДоброго времени суток!
Делаю имитатор контроля скорости на форме и стоит задача нажав на кнопку (СommаndButton), скорость в окошке (textbox) начала подниматься с заданным ускорением a от значения v1 до значения v2. Грубо говоря, чтобы значение скорости за 5 секунд поднялось с 0 до 60.

Автор - Паштет
Дата добавления - 17.09.2022 в 11:32
RAN Дата: Суббота, 17.09.2022, 12:33 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)    'For 64 Bit Systems
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)    'For 32 Bit Systems
#End If
[/vba]

[vba]
Код
Dim flag As Boolean
Const tbStart& = 10
Const tbEnd& = 60
Const SleepTime& = 100

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    flag = True: TB
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    flag = False: TB
End Sub

Sub TB()
    If Len(Me.TextBox1) = 0 Then Me.TextBox1 = tbStart
    Do While flag
        If Val(Me.TextBox1) >= tbEnd Then Exit Do
        Me.TextBox1 = Val(Me.TextBox1) + 1
        Sleep (SleepTime)
        Me.Repaint
        DoEvents
    Loop
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)    'For 64 Bit Systems
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)    'For 32 Bit Systems
#End If
[/vba]

[vba]
Код
Dim flag As Boolean
Const tbStart& = 10
Const tbEnd& = 60
Const SleepTime& = 100

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    flag = True: TB
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    flag = False: TB
End Sub

Sub TB()
    If Len(Me.TextBox1) = 0 Then Me.TextBox1 = tbStart
    Do While flag
        If Val(Me.TextBox1) >= tbEnd Then Exit Do
        Me.TextBox1 = Val(Me.TextBox1) + 1
        Sleep (SleepTime)
        Me.Repaint
        DoEvents
    Loop
End Sub
[/vba]

Автор - RAN
Дата добавления - 17.09.2022 в 12:33
Паштет Дата: Воскресенье, 18.09.2022, 13:21 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Попробовал вставить и ругается на строчку
[vba]
Код
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
[/vba]
Пишет:
Цитата
Compile error:
Constanst, fixed-lenght strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules
 
Ответить
СообщениеПопробовал вставить и ругается на строчку
[vba]
Код
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
[/vba]
Пишет:
Цитата
Compile error:
Constanst, fixed-lenght strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules

Автор - Паштет
Дата добавления - 18.09.2022 в 13:21
RAN Дата: Понедельник, 19.09.2022, 14:30 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Поскольку вы не считаете целесообразным приложить пример, по умолчанию предполагается, что вы в состоянии самостоятельно вставить отдельные фрагменты кода в нужные места.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПоскольку вы не считаете целесообразным приложить пример, по умолчанию предполагается, что вы в состоянии самостоятельно вставить отдельные фрагменты кода в нужные места.

Автор - RAN
Дата добавления - 19.09.2022 в 14:30
Паштет Дата: Понедельник, 19.09.2022, 18:03 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Я тоже так думал. Но что-то пошло не так.
Поэтому прикрепил файл. Пытался привязать данный код к кнопке "41" (speed41). Ваши строки все прописаны, но отменено действие, так что будет в коде выделено зеленым.
К сообщению приложен файл: 3183450.xlsm (36.5 Kb)
 
Ответить
СообщениеЯ тоже так думал. Но что-то пошло не так.
Поэтому прикрепил файл. Пытался привязать данный код к кнопке "41" (speed41). Ваши строки все прописаны, но отменено действие, так что будет в коде выделено зеленым.

Автор - Паштет
Дата добавления - 19.09.2022 в 18:03
Serge_007 Дата: Вторник, 20.09.2022, 08:25 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Поэтому прикрепил файл
Не "поэтому" надо прикреплять файл-пример, а потому что в правилах так требуется (за 6 лет Вы могли бы их хотя бы один раз прочитать), что бы не было
что-то пошло не так


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Поэтому прикрепил файл
Не "поэтому" надо прикреплять файл-пример, а потому что в правилах так требуется (за 6 лет Вы могли бы их хотя бы один раз прочитать), что бы не было
что-то пошло не так

Автор - Serge_007
Дата добавления - 20.09.2022 в 08:25
RAN Дата: Вторник, 20.09.2022, 15:53 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Паштет, вопрос показался мне интересным, поэтому я им занялся.
Искать в вашем рабочем файле кнопку и текстбокс - не интересно.
Код не случайно разделен на 2 части. 1 часть должна быть в стандартном модуле.
То, что интересно - помощь, то что не интересно - РАБОТА!
Если ты пенсионер, ну ее нахер, эту работу! Лапу соси! И мозги тренируй, чтобы в байдена не превратиться.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПаштет, вопрос показался мне интересным, поэтому я им занялся.
Искать в вашем рабочем файле кнопку и текстбокс - не интересно.
Код не случайно разделен на 2 части. 1 часть должна быть в стандартном модуле.
То, что интересно - помощь, то что не интересно - РАБОТА!
Если ты пенсионер, ну ее нахер, эту работу! Лапу соси! И мозги тренируй, чтобы в байдена не превратиться.

Автор - RAN
Дата добавления - 20.09.2022 в 15:53
Паштет Дата: Вторник, 20.09.2022, 18:07 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
RAN, большое спасибо!
Я смог разобраться и переделал под себя код.
Проблема была в:
Цитата
1 часть должна быть в стандартном модуле.

Об этом я не догадался.
 
Ответить
СообщениеRAN, большое спасибо!
Я смог разобраться и переделал под себя код.
Проблема была в:
Цитата
1 часть должна быть в стандартном модуле.

Об этом я не догадался.

Автор - Паштет
Дата добавления - 20.09.2022 в 18:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Плавное увеличение значения в окне (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!