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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 23:17   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Отрицательное значение TextBox

Здравствуйте.
Подскажите почему не происходит изменение цвета, отрицательного значения TextBox5 ?
Вложения
Тип файла: rar seg.rar (8.5 Кб, 15 просмотров)
segail вне форума Ответить с цитированием
Старый 08.11.2009, 01:09   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Option Explicit

Вот ваша беда,что у вас нет обязательного обявления,сразу бы нашли ошибку
Вложения
Тип файла: rar seg.rar (10.7 Кб, 15 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.11.2009, 13:48   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

В принципе мне уже сказали, как надо EducatedFool хотя Ваш код тоже работает. Спасибо.
После того как значения в TextBox стали с десятичными знаками, возникла другая проблема, не происходит суммирование значения TextBox5 с ячейкой .Cells(i, 6).Value
Код:
.Cells(i, 6).Value = UserForm1.TextBox5.Text + .Cells(i, 6).Value
До этого числа в TextBox были целыми, суммирование выполнялось, но кода я добавил десятичные значения в TextBox
Код:
TextBox5 = Round(.Range("D25"), 2)
Выдается ошибка. Я думаю что десятичные значение в TextBox разделены точкой, а в ячейки десятичные значения разделены запятой. Что здесь можно сделать?
segail вне форума Ответить с цитированием
Старый 08.11.2009, 16:20   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

выполните макрос и все поймете

Код:

Sub Число_и_текст()

Dim a, b As String
Dim x, y As Double
a = "10,1"
b = "11,2"
MsgBox (a + b)
MsgBox (CDbl(a) + CDbl(b))
x = 10.1
y = 11.2
MsgBox (x + y)

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.11.2009, 18:32   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Смысл Вашего примера понимаю так, текст при помощи функции CDbl переводится в числовой.
Не пойму только как у меня эти функции правильно проставить
Код:
Dim b As String
b = Round(.Range("D25"), 2)
        
TextBox5 = CDbl(b)
TextBox5.ForeColor = IIf(Val(TextBox5) < 0, vbRed, vbBlack)
segail вне форума Ответить с цитированием
Старый 08.11.2009, 18:52   #6
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Или так. Ячейка Cells(i, 6).Value) уже имеет числовой формат, не пойму что делать с TextBox5
Код:
Dim b As String
b= UserForm1.TextBox5.Text
.Cells(i, 6).Value = (CDbl(b) + .Cells(i, 6).Value)

Последний раз редактировалось segail; 08.11.2009 в 19:13.
segail вне форума Ответить с цитированием
Старый 08.11.2009, 19:21   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от segail Посмотреть сообщение
Смысл Вашего примера понимаю так, текст при помощи функции CDbl переводится в числовой.
Не пойму только как у меня эти функции правильно проставить
Код:
Dim b As String
b = Round(.Range("D25"), 2)
        
TextBox5 = CDbl(b)
TextBox5.ForeColor = IIf(Val(TextBox5) < 0, vbRed, vbBlack)
TextBox5.Text = b


TextBox5-это контрол

TextBox5.Text -это текст этого контрола




Код:
Dim b As String
b = Round(.Range("D25"), 2)
      on error resume next  ' ячейка может быть пустая
TextBox5.Text = b
TextBox5.ForeColor = IIf(CDbl(TextBox5.Text) < 0, vbRed, vbBlack)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.11.2009, 20:35   #8
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

А суммирование по такому принципу производить?
Код:
Dim a,b As String

a = .Cells(i, 6).Value)
on error resume next  ' ячейка может быть пустая
b= UserForm1.TextBox5.Text
.Cells(i, 6).Value = (CDbl(a) + CDbl(b))
segail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с TextBox miatu Microsoft Office Word 3 10.09.2009 18:08
значение TextBox в колонтитул segail Microsoft Office Excel 3 15.08.2009 21:58
TextBox в С# Natok Помощь студентам 2 18.05.2009 17:47
С# : GDI+ TextBox Natok Помощь студентам 2 17.05.2009 19:53
TextBox Freeman Общие вопросы C/C++ 3 28.05.2008 00:56