Страницы: Пред. 1 2
RSS
Ошибка при делении TextBox в UserForm <Run-time error "6" Overflow>
 
Цитата
Hugo написал:
Если конечно это на другое не влияет, вроде нет.
Нет нет не влияет, любые цифры можно писать.
 
Цитата
Hugo написал: Ты тоже без очков смотришь?
Не обратил внимание на строку ниже )

*CurrencyEur* в процессе где-то очищается.


При инициализации строкой
Код
CurrencySelect.value = "AZN"
запускается
Код
Private Sub CurrencySelect_Change()
    CurrencyFunction
End Sub

И дальше - пошло-поехало. разбираться в этом ворохе...
 
Цитата
vikttur написал:
Вот, в коде инициализации
Поверьте, без этого тоже самое было, это потом появилось)
 
у вас сразу после заполлнения значения курса доллара запускается вот эта процедура:
Код
Private Sub CurrencyUsd_Change()
    Debit1
    Debit2
    Debit3
    Debit4
    Debit5
    Credit1
    Credit2
    Credit3
    Credit4
    Credit5
    DebitCurrencySum
    CreditCurrencySum
End Sub
в ходе которой запускается вот эта
Код
DebitCurrencySum
ну а евро к этому времени еще не заполнялся...

PS и Вы хотели этот ответ без примера получить? :)
Изменено: webley - 05.06.2018 19:33:47
 
Я добавил в модуль переменную-флаг - помогло. Ну и всюду конечно как положено задаю значение и проверяю...
 
Цитата
webley написал: ну а евро к этому времени еще не заполнялся...P
То-есть все из-за того что доллар первым там стоит из-за этого?)
Если по очереди всё, то как быть с Евро и Дерхамом?)
 
Цитата
vikttur написал:
И дальше - пошло-поехало. разбираться в этом ворохе...
Понимаете теперь почему я не хотел файл закрепить?)
Это головная боль, думал кодом обойтись, ошибся)
 
Я выше уже два решения написал. По два раза :)
 
Цитата
Fuad1992 написал:
то как быть с Евро и Дерхамом
ну хотя бы так:
Код
Sub DebitCurrencySum()
    Me.DebitAzn.value = Val(Me.Deb1.value) + Val(Me.Deb2.value) + Val(Me.Deb3.value) + Val(Me.Deb4.value) + Val(Me.Deb5.value)
    If Val(Me.CurrencyUsd.value) <> 0 Then Me.DebitUsd.value = (Val(Me.Deb1.value) + Val(Me.Deb2.value) + Val(Me.Deb3.value) + Val(Me.Deb4.value) + Val(Me.Deb5.value)) / Val(Me.CurrencyUsd.value)
    If Val(Me.CurrencyEur.value) <> 0 Then Me.DebitEur.value = (Val(Me.Deb1.value) + Val(Me.Deb2.value) + Val(Me.Deb3.value) + Val(Me.Deb4.value) + Val(Me.Deb5.value)) / Val(Me.CurrencyEur.value)
    If Val(Me.CurrencyAed.value) <> 0 Then Me.DebitAed.value = (Val(Me.Deb1.value) + Val(Me.Deb2.value) + Val(Me.Deb3.value) + Val(Me.Deb4.value) + Val(Me.Deb5.value)) / Val(Me.CurrencyAed.value)
End Sub
 
или вот сюда CurrencyUsd_Change добавить вычисления для доллара, сюда CurrencyEur_Change для евро и т.д.
А не все три в отдельной процедуре
 
Цитата
Hugo написал:
Я выше уже два решения написал. По два раза
Игорь, тебя игнорят )
 
Цитата
webley написал: ну хотя бы так:
Спасибо вам огромное за решение!) Такое легкое оказывается)
Все работает!
Столько народу собралось, всем отдельно спасибо также!
Благодарю!
 
Fuad1992, немного оптимизировал  код для формы frmInvoice. Если будет желание и время протестируйте.
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Fuad1992 написал:
Мне кажется только 1 раз делить можно
невинность можно потерять только 1 раз, а делить можете столько раз сколько нужно
в формуле, которая считает поставте проверку на 0. когда этот фрагмент кода срабатывает
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Nordheim написал:
немного оптимизировал  код для формы  frmInvoice. Если будет желание и время протестируйте.
Уважаемый Nordheim!) Если бы вы знали как я вам благодарен за этот труд!
Файл стал меньше в размере) И даже шустрее. Сразу чувствую.
Не то что, моя глупая история в макросах) Как сильно можно оказывается сжать макрос, а именно грамотно его писать. Я в шоке)
Обычно я стараюсь просить у форумчан какую-то незначительную поправку.
Однако здесь это огромный труд, и мне не удобно)
Вы гений просто,, Спасибо вам еще раз за этот труд!
Страницы: Пред. 1 2
Наверх