powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заблокировать commandbutton при делении на ноль
8 сообщений из 8, страница 1 из 1
Заблокировать commandbutton при делении на ноль
    #34195339
Pathologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пжалста ламерку!
Хотел заблокировать кнопку, если не введены значения в поля 1 и 2, но почему то не работает
Вот такая программа

Private Sub CommandButton1_Click()
CommandButton1.Enabled = True
Dim X!
X = Val(TextBox2.Text) / 100
Y = Val(TextBox1.Text) / (X ^ 2)
TextBox3.Text = Y
If TextBox1.Text = 0 Then
CommandButton1.Enabled = False
ElseIf TextBox2.Text = 0 Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
End Sub


P.S. и еще, если не затруднит, подскажите как в Text3 вывести число с 2-мя цифрами после запятой, а не с 5-ю
Спасибо заранее всем, кто откликнется
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34195405
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХотел заблокировать кнопку, если не введены значения в поля 1 и 2, но почему то не работает
Нужно обрабатывать ввод в событии Change или KeyDown каждого текстбокса
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34195506
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условие типа авторIf TextBox1.Text = 0 Then сработает только когда в TextBox1.Text будет символ 0, проверка на пустоту TextBox1 выглядит примерно так
Код: plaintext
If Len(TextBox1.Text) <>  0  Then ...
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34196266
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме:
Command1
Edit1
Edit2
Edit3
В модуле формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Option Explicit

Private Sub Form_Load()
Command1.Enabled = False
End Sub

Private Sub Text1_Change()
If Val(Text1.Text) =  0  Or Val(Text2.Text) =  0  Then
    Command1.Enabled = False
Else
    Command1.Enabled = True
End If
End Sub

Private Sub Text2_Change()
If Val(Text1.Text) =  0  Or Val(Text2.Text) =  0  Then
    Command1.Enabled = False
Else
    Command1.Enabled = True
End If
End Sub

Private Sub Command1_Click()
Dim X As Double
Dim Y As Double
X = Val(Text1.Text) /  100 
Y = Val(Text2.Text) / (X ^  2 )
Text3.Text = Format(Y, "0.00")
End Sub
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34197067
Pathologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, хотя с выполнением задачи при пустых полях проблема не решилась: кнопка Command1 так и не начинает работать после заполнения Text1 иText2, при изначальном Command1.Enabled = False. А при изначальном Command1.Enabled = True, при пустых полях Text1 иText2 - выдает ошибку Run-Time error '6' Overflow. Может дело все в том, что я работаю не на самом барсике, а на Apllication из-под Excel?
Буду очень признателен, если найдете мне решение. Спасибо.
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34197335
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, в самом примитивном, неизощренном виде, наверно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit

Private Sub TextBox1_Change()
    CommandButton1.Enabled = GetEnableDisable
End Sub

Private Sub TextBox2_Change()
    CommandButton1.Enabled = GetEnableDisable
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Enabled = False
End Sub

Private Function GetEnableDisable() As Boolean
    GetEnableDisable = IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text)
End Function

Насчет "число с 2-мя цифрами после запятой", посмотрите примеры функции Format. Их много.

VladConn
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34197358
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо заблокироавть кнопку, если во втором текстовом поле сидит ноль, то функция может быть, например, такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Function GetEnableDisable() As Boolean
    Dim blnReturn As Boolean

    blnReturn = IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text)

    If blnReturn Then
        blnReturn = CDbl(TextBox2.Text) >  0 #
    End If

    GetEnableDisable = blnReturn
End Function
...
Рейтинг: 0 / 0
Заблокировать commandbutton при делении на ноль
    #34198587
Pathologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Теперь все работает.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заблокировать commandbutton при делении на ноль
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]