Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Формат даты в комбобоксе формы
 
Добрый день.

На созданной форме, при выборе даты комбобоксом, отображается дата в числовом формате.
Код
Private Sub Date1_Change()
   Me.Date1.Value = Format(Me.Date1.Value, "dd/mm/yyyy")
End Sub

выдает сообщение - can't execute code in break mode. Замена "Ме" на имя формы не помогает...
Что я делаю не так?

Спасибо!
 
Вы находитесь в режиме отладки (приостановлена работа другого кода) и пытаетесь запустить ещё и этот. Не?

З.Ы. Читайте правила, выкладывайте файл-пример.
Я не волшебник, я только учусь.
 
Цитата
zasada написал:
Что я делаю не так?
Вы пытаетесь в режиме отладки одного макроса выполнить другой. параллельное выполнение 2-х макросов - не предусмотрено.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Нет, не в отладке и да - ещё и этот :)

Файл весит 3М поэтому и не выкладываю.

Я набросал форму, привязал контролы, начал оживлять...
Сначала дата форматировалась, но в какой-то момент начала выдавать ошибку.
На форме есть еще 2 динамических лэйбла (часы и прогноз производства) и еще на листе вставил такие же тикающие часики.
Переформат даты перестал работать после 2го динамического лейбла(производство). Я как-то эти события не связывал :(

Все 3 динамика записаны в отдельный модуль как паблики. Формат даты в коде формы приватом.
Изменено: zasada - 30 Авг 2018 12:47:34
 
Попробуйте вместо события Change использовать событие Exit.
 
Попробовал...
Цитата
Compile error
Only comments may appear after End Sub, End Function, or End Property
Удалил формат вообще, только теперь это сообщение появляется постоянно (15 текстбоксов было на Exit завязано)
Форма умерла :(
 
zasada, Вы пробовали перевести эту строчку с ошибкой?
 
компилятор пишет Вам "не располагайте код за пределами процедур"
с формой все нормально, это просто внутри Вас программист агонизирует
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я ниразу не програмист - самоучка. Поставлена задача сделать доступный интерфейс ввода данных для тех, кто слово Х.. с клавы набирает 2 минуты, на "дискетку" нажать боится или забывает, а "красный крестик" - вызов 911...

Вот я такой, примерно, в VBA.
Почему код за пределами?
Код
Private Sub UserForm_Activate()
    NextTime
    Speed_OEE
End Sub
Private Sub Date1_Change()
    DateV.Value = Format(Date1.Value, "dd/mm/yyyy")
End Sub
Private Sub TabK_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A2") = X26.TabK
    X26.NK = Sheets("data").Range("B2")
End Sub
Private Sub Tab1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A3") = X26.Tab1
    X26.N1 = Sheets("data").Range("B3")
End Sub

С датой попробовал сверху на комбобокс текстовый наложить - раньше срабатывало. Но сообщение о коде за пределами теперь перекинулось ниже(на след. Exit),

хотя раньше отрабатывало как надо.:(

 
Даже оформить не получилось :(
Код
Private Sub Tab2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A4") = X26.Tab2
    X26.N2 = Sheets("data").Range("B4")
End Sub
Private Sub Tab3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A5") = X26.Tab3
    X26.N3 = Sheets("data").Range("B5")
End Sub
Private Sub Tab4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A6") = X26.Tab4
    X26.N4 = Sheets("data").Range("B6")
End Sub
Private Sub Tab5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A7") = X26.Tab5
    X26.N5 = Sheets("data").Range("B7")
End Sub
Private Sub TabL_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("A8") = X26.TabL
    X26.NL = Sheets("data").Range("B8")
End Sub
Private Sub Shift1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("data").Range("B22") = X26.Shift1
    X26.WT1 = Sheets("data").Range("D22")
    X26.WT2 = Sheets("data").Range("E22")
End Sub
Private Sub scoreAMImp_Click()
    Sheets("data").Range("T8") = X26.AMI1
    Sheets("data").Range("U8") = X26.AMI2
    Sheets("data").Range("V8") = X26.AMI3
    Sheets("data").Range("W8") = X26.AMI4
    Sheets("data").Range("X8") = X26.AMI5
    Sheets("data").Range("Z2") = X26.KCig
    X26.AMIR.Value = Sheets("data").Range("Y9")
End Sub
Private Sub scoreAMUA_Click()
    Sheets("data").Range("T2") = X26.AMUA1
    Sheets("data").Range("U2") = X26.AMUA2
    Sheets("data").Range("V2") = X26.AMUA3
    Sheets("data").Range("W2") = X26.AMUA4
    Sheets("data").Range("X2") = X26.AMUA5
    Sheets("data").Range("Z2") = X26.KCig
    X26.AMUAR.Value = Sheets("data").Range("Y3")
End Sub
Private Sub WT1_Change()
    Speed_OEE
End Sub
Изменено: zasada - 30 Авг 2018 15:08:20
 
НАБЛЮДЕИЕ
Ни разу не слышал, и не видел написанное от человека, управляющего автомобилем, что он не водитель.
А вот для человека, пишущего программу, заявить, что он не программист - в порядке вещей!

8-0
 
zasada,
возможно, какая-то процедура активируется много раз, а не только один
удалите конфиденциальные данные и вставте пример файла с макросами
 
Цитата
удалите конфиденциальные данные и вставте пример файла с макросами

К сожалению после удаления данных размер файла практически не изменился :(
Попробовал сохранить в формате .xlsb, уменьшился с 3790 до 3300 - сама форма большая. Кроме кода выше (это все, что внутри формы) еще остались только эти:
Код
Public Sub NextTime() '÷àñû íà ôîðìå
    Application.OnTime Now + TimeSerial(0, 0, 1), "NextTime"
    X26.clock.Caption = Format(Now(), "hh:mm:ss")
    DoEvents
End SubPublic Sub NextTimeSheet() '÷àñû íà ëèñòå
    Application.OnTime Now + TimeSerial(0, 0, 1), "NextTimeSheet"
    Sheets("data").Range("H22") = Format(Now(), "hh:mm:ss")
    DoEvents
End SubPublic Sub Speed_OEE() 'ïðîãíîç âûðàáîòêè îíëàéí
    Sheets("data").Range("C25") = X26.Format
    X26.Speed.Value = Sheets("data").Range("D25")
    Sheets("data").Range("G23") = X26.WT1
    Sheets("data").Range("I23") = X26.Speed
     Application.OnTime Now + TimeSerial(0, 0, 1), "Speed_OEE"
    X26.OEE.Caption = Sheets("data").Range("K22")
End Sub 

И при открытии книги запускается "NextTimeSheet"

Страницы: 1
Читают тему (гостей: 1)
Наверх