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

Вход

Регистрация

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

 

= Мир MS Excel/TextBox убрать ошибку при пустом поле - Мир MS Excel

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

Excel 2007, 2013
Помогите пожалуйста c решением такой задачи.

У меня возникает ошибка в том случаи когда одно из полей TextBox - пустое, когда пользователь из него все удалил. (имеются введу цифры)
Как бы мне исправить данную ошибку.

Присылаю кусок когда. И прилагаю файл.
[vba]
Код


Option Explicit
Dim Rezultat As Long

Private Sub TextBoxDya1_Change()
    Raschet
End Sub
Private Sub TextBoxDya2_Change()
    Raschet
End Sub
Function Raschet()

'For y = 1 To 12 ' Проставляем дни недели из массива в месяце.
    'If CInt(iArr(y)) <> 0 Then ' Массив содержащий номера тех месяцев что используются в МП
        If Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Or Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        ElseIf Me.TextBoxDya1.Value <> "" Or Me.TextBoxDya2.Value <> "" Then
            Me.TextBoxDya1.BackColor = RGB(255, 255, 255) '  Белый
            Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый
            Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value
            Me.Label1.Caption = Rezultat
        End If
    'End If
'Next y
End Function

Private Sub UserForm_Initialize()

    Me.TextBoxDya1.Value = 1
    Me.TextBoxDya2.Value = 30
    
End Sub

[/vba]

И еще вопрос, почему срабатывает условие и закрашивает крассным BackColor. Когда вводишь 5,6,7,8 или 9 в TextBox1
К сообщению приложен файл: ____TextBox.xlsm (14.5 Kb)


О_о ...и так можно было?

Сообщение отредактировал lopuxi - Пятница, 16.10.2015, 13:15
 
Ответить
СообщениеПомогите пожалуйста c решением такой задачи.

У меня возникает ошибка в том случаи когда одно из полей TextBox - пустое, когда пользователь из него все удалил. (имеются введу цифры)
Как бы мне исправить данную ошибку.

Присылаю кусок когда. И прилагаю файл.
[vba]
Код


Option Explicit
Dim Rezultat As Long

Private Sub TextBoxDya1_Change()
    Raschet
End Sub
Private Sub TextBoxDya2_Change()
    Raschet
End Sub
Function Raschet()

'For y = 1 To 12 ' Проставляем дни недели из массива в месяце.
    'If CInt(iArr(y)) <> 0 Then ' Массив содержащий номера тех месяцев что используются в МП
        If Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Or Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        ElseIf Me.TextBoxDya1.Value <> "" Or Me.TextBoxDya2.Value <> "" Then
            Me.TextBoxDya1.BackColor = RGB(255, 255, 255) '  Белый
            Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый
            Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value
            Me.Label1.Caption = Rezultat
        End If
    'End If
'Next y
End Function

Private Sub UserForm_Initialize()

    Me.TextBoxDya1.Value = 1
    Me.TextBoxDya2.Value = 30
    
End Sub

[/vba]

И еще вопрос, почему срабатывает условие и закрашивает крассным BackColor. Когда вводишь 5,6,7,8 или 9 в TextBox1

Автор - lopuxi
Дата добавления - 16.10.2015 в 12:26
lopuxi Дата: Пятница, 16.10.2015, 13:28 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007, 2013
ВСЕ!
Я сам справился. Ошибку не выдает. Затупил короче.

Однако вопрос почему TextBox закрашивается красным при условии Tckb TextBox1 > TextBox2 (5 > 30) - ведь 5 ни как не больше 30, но почему срабатывает условие??

[vba]
Код

        If Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Or Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        ElseIf Me.TextBoxDya1.Value = "" Or Me.TextBoxDya2.Value = "" Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        Else
            Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый
            Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый
            Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value
            Me.Label1.Caption = Rezultat
        End If

[/vba]


О_о ...и так можно было?

Сообщение отредактировал lopuxi - Пятница, 16.10.2015, 13:45
 
Ответить
СообщениеВСЕ!
Я сам справился. Ошибку не выдает. Затупил короче.

Однако вопрос почему TextBox закрашивается красным при условии Tckb TextBox1 > TextBox2 (5 > 30) - ведь 5 ни как не больше 30, но почему срабатывает условие??

[vba]
Код

        If Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Or Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        ElseIf Me.TextBoxDya1.Value = "" Or Me.TextBoxDya2.Value = "" Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        Else
            Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый
            Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый
            Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value
            Me.Label1.Caption = Rezultat
        End If

[/vba]

Автор - lopuxi
Дата добавления - 16.10.2015 в 13:28
akaDemik Дата: Пятница, 16.10.2015, 15:15 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Однако вопрос почему TextBox закрашивается красным при условии

может быть попробовать не RGB, а
[vba]
Код
.Font.Color = vbRed
[/vba]
 
Ответить
Сообщение
Однако вопрос почему TextBox закрашивается красным при условии

может быть попробовать не RGB, а
[vba]
Код
.Font.Color = vbRed
[/vba]

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

2010
ведь 5 ни как не больше 30

Больше.
Нет, если говорить о числах, тогда, оно, конечно...
Но вы-то сравниваете не числа, а текст.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
ведь 5 ни как не больше 30

Больше.
Нет, если говорить о числах, тогда, оно, конечно...
Но вы-то сравниваете не числа, а текст.

Автор - RAN
Дата добавления - 16.10.2015 в 17:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » TextBox убрать ошибку при пустом поле (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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