Страницы: 1
RSS
Сбросить SpinButton, чтобы отсчет начинался заново с нуля. SpinButton1.Value=0 не помогает
 
Есть пользовательская форма.

На ней TextBox  SpinButton связанный c ним.
И есть  кнопка которая копирует значение набранное SpinButton'ом в TextBox'е и затем очищающее ее. Но после очищения SpinButton начинает набирать с последнего числа, которое было до этого. Никак не получается обнулить до 0, чтобы начинался отсчет с 1-го, а не с 2.

Подскажите плиз как это можно сделать. Никто не сталкивался с такой проблемой?
 
bekzus, SpinButton1 = 0
 
Спасибо Казанский! Я уже пробовала SpinButton1=0 и SpinButton.value=0. Не помогает :(.  
Изменено: bekzus - 21.12.2016 20:20:22
 
bekzus, мне помогает. А что и как сделано у Вас - неведомо, хрустальный шар в ремонте.
 
Или у меня компьютер просто сломался или excel уже обновить надо не знаю. Замучилась уже совсем :evil:

Набираю число любое и нажимаю кнопку перенести. Потом уже второй раз начинается с того числа, которое набирала в последний раз.
Изменено: bekzus - 21.12.2016 20:28:49
 
bekzus,
Код
SpinBtton1 = 0
разве не так?
Код
SpinButton1 = 0
 
Цитата
Jungl написал:SpinButton1 = 0
Да в коде оказывается ошибка! :oops:

Но все равно не помогает
Изменено: bekzus - 21.12.2016 20:43:34
 
У меня вот так работает
Код
Private Sub ПЕРЕНЕСТИ_Click()
TextBox2 = TextBox2 + TextBox3
TextBox1 = TextBox1 - TextBox3
TextBox3 = ""
Me.SpinButton1 = 0
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Private Sub ПЕРЕНЕСТИ_Click()TextBox2 = TextBox2 + TextBox3TextBox1 = TextBox1 - TextBox3TextBox3 = ""Me.SpinButton1 = 0End Sub
Прикольно. Вроде до этого не работало, а теперь работает. Интересно :D

А если у меня таких много будет кнопок, как можно на все сразу код написать не прописывая каждый?
Нашла в интернете такой код. Его можно применить как то?
Код
Private ForAllSpins ()
Dim spin As Control
    For Each spin In Me.Controls
        If Left(spin.Name, 4) = "Spin" Then spin = 0
    Next spin
End sub
 
Создать свой класс
Согласие есть продукт при полном непротивлении сторон
 
Спасибо Sanja! Читаю 8-0 и пытаюсь разобраться. Ужас еще и классы какие то
 
А перебором контролов можно так
Код
Dim Ctrl As Control
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "SpinButton" Then
        MsgBox TypeName(Ctrl)
    End If
Next
Согласие есть продукт при полном непротивлении сторон
 
Не смогла разобраться никак с классами. Это чересчур запутанно :cry: Попыталась пошагово сделать как описано. Не сработало
Код
Option Explicit
Public WithEvents oSpnBtn As MSForms.SpinButton    'создаем элемент с отслеживанием его событий
'за назначение с отслеживанием событий отвечает оператор WithEvents
'(может применяться только в модулях классов)

Private Sub oSpnBtn_Change()
 oSpnBtn = 0
End Sub


Dim i As Integer
    'Присваиваем последовательно значениям массива значения объектов
    For i = 1 To 41
        Set aoSpnBtns(i).oSpnBtn = Me.Controls("SpinButton" & i)

    Next i

Public aoSpnBtns(1 To 41) As New clsmSpnBtns 


Все время выходит ошибка "Could not find the specified object"
Изменено: bekzus - 21.12.2016 22:49:14
 
Цитата
Или у меня компьютер просто сломался или excel уже обновить надо не знаю. Замучилась уже совсем
прежде чем искать проблему в работе Excel, Windows, компьютера, в неблагосклонном расположении звезд и планет - поищите проблему в собственном коде.
это самый быстрый способ найти и исправить ошибку
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

;)
 
А есть другой способ кроме классов?

Перебором контролов тоже не получилось:(
Код
Dim Ctrl As Control
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "SpinButton" Then
        Ctrl=0
    End If
Next
 
У меня Ваша большая форма вообще не работает...
Для маленькой формы: не нужно надеяться на неявное преобразование текста в число - лучше это делать принудительно.
На ноль Спин сбрасывается.
 
Такой код сбросит все Спины в ноль:
Код
Dim x As Control
    For Each x In Me.Controls
        If TypeOf x Is MSForms.SpinButton Then
            x.Value = 0
        End If
    Next
 
Вот для проверки для двух SpinButton.
 
Цитата
bekzus написал:
Перебором контролов тоже не получилось
Ну не знаю...У меня все получается
Согласие есть продукт при полном непротивлении сторон
 
Спасибо вам Юрий М и Sanja! Вы почти всегда находите время помочь. Очень благодарна. :D
 
Цитата
bekzus написал: Вы почти всегда находите время помочь.
А могли бы не лениться! ;)
Страницы: 1
Наверх