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

Вход

Регистрация

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

 

= Мир MS Excel/Не корректная работа формы - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Не корректная работа формы
Vertep7 Дата: Вторник, 08.04.2025, 11:41 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте. Помогите разобраться с формой.
Мне необходимо что бы числа вводимые в форму передавались на лист и при повторном открытии формы отображались в ней, то же самое для переключателей, нужно что бы отображался какой переключатель активен. Сделал свой вариант, но он не отвечает моим ожиданиям.
Какие проблемы возникли:
1) при открытии формы в дробной части появляются нули, а нужны пустые ячейки
2) при вводе дробного числа необходимо повторно переоткрывать форму что бы число записалось как дробное (запятая меняется на точку)
3) переключатель при первом открытии не имеет положения по умолчанию, а при повторном открытии формы не отображается какой из вариантов выбран.
Вообще собственно мне нужна нормальная обратная связь формы и листа, чего я пока не смог добиться.
Прошу помочь с написанием правильного варианта, который нивелировал бы все эти недостатки.
К сообщению приложен файл: primer_formy.xls (46.5 Kb)


Сообщение отредактировал Vertep7 - Вторник, 08.04.2025, 11:43
 
Ответить
СообщениеЗдравствуйте. Помогите разобраться с формой.
Мне необходимо что бы числа вводимые в форму передавались на лист и при повторном открытии формы отображались в ней, то же самое для переключателей, нужно что бы отображался какой переключатель активен. Сделал свой вариант, но он не отвечает моим ожиданиям.
Какие проблемы возникли:
1) при открытии формы в дробной части появляются нули, а нужны пустые ячейки
2) при вводе дробного числа необходимо повторно переоткрывать форму что бы число записалось как дробное (запятая меняется на точку)
3) переключатель при первом открытии не имеет положения по умолчанию, а при повторном открытии формы не отображается какой из вариантов выбран.
Вообще собственно мне нужна нормальная обратная связь формы и листа, чего я пока не смог добиться.
Прошу помочь с написанием правильного варианта, который нивелировал бы все эти недостатки.

Автор - Vertep7
Дата добавления - 08.04.2025 в 11:41
Nic70y Дата: Вторник, 08.04.2025, 12:19 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9114
Репутация: 2412 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
If [D5].Value <> "" Then [D5].Value = CDec([D5].Value) ' для использования дробных значений
If [g5] Then
    OptionButton1 = True
Else
    OptionButton2 = True
End If
[/vba]

запятая меняется на точку
так и должно быть
иначе получите текст


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 08.04.2025, 12:23
 
Ответить
Сообщение[vba]
Код
If [D5].Value <> "" Then [D5].Value = CDec([D5].Value) ' для использования дробных значений
If [g5] Then
    OptionButton1 = True
Else
    OptionButton2 = True
End If
[/vba]

запятая меняется на точку
так и должно быть
иначе получите текст

Автор - Nic70y
Дата добавления - 08.04.2025 в 12:19
Vertep7 Дата: Вторник, 08.04.2025, 12:40 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
запятая меняется на точку
так и должно быть

Да я знаю, спасибо. Но в моем варианте нужно дважды в форму зайти, потому что если записать дробное значение, то оно передается как текстовое и все привязанные к форме расчеты разрушаются. А вот если зайти повторно, то значение на листе трансформируется в числовое. Но так скорее всего не должно быть, если форма сделана правильно.
 
Ответить
Сообщение
запятая меняется на точку
так и должно быть

Да я знаю, спасибо. Но в моем варианте нужно дважды в форму зайти, потому что если записать дробное значение, то оно передается как текстовое и все привязанные к форме расчеты разрушаются. А вот если зайти повторно, то значение на листе трансформируется в числовое. Но так скорее всего не должно быть, если форма сделана правильно.

Автор - Vertep7
Дата добавления - 08.04.2025 в 12:40
Nic70y Дата: Вторник, 08.04.2025, 12:53 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9114
Репутация: 2412 ±
Замечаний: 0% ±

Excel 2010
ну если сильно хочется, то как-то так
[vba]
Код
Private Sub UserForm_Activate()
If [D5].Value <> "" Then [D5].Value = CDec([D5].Value) ' для использования дробных значений
If [g5] Then
    OptionButton1 = True
Else
    OptionButton2 = True
End If
'-----------------------------------------------------------------------------
UserForm1.TextBox1.ControlSource = "B5"
UserForm1.TextBox2 = Replace(Range("D5").Value, ".", ",")
End Sub

Private Sub TextBox1_Change()
[B5] = UserForm1.TextBox1.Value
End Sub

Private Sub TextBox2_Change()
[D5] = Replace(UserForm1.TextBox2.Value, ",", ".")
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщениену если сильно хочется, то как-то так
[vba]
Код
Private Sub UserForm_Activate()
If [D5].Value <> "" Then [D5].Value = CDec([D5].Value) ' для использования дробных значений
If [g5] Then
    OptionButton1 = True
Else
    OptionButton2 = True
End If
'-----------------------------------------------------------------------------
UserForm1.TextBox1.ControlSource = "B5"
UserForm1.TextBox2 = Replace(Range("D5").Value, ".", ",")
End Sub

Private Sub TextBox1_Change()
[B5] = UserForm1.TextBox1.Value
End Sub

Private Sub TextBox2_Change()
[D5] = Replace(UserForm1.TextBox2.Value, ",", ".")
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 08.04.2025 в 12:53
Vertep7 Дата: Вторник, 08.04.2025, 12:57 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Пытался макросом создать автозамену запятой на точку, что бы сразу с первого раза дробные числа записывались, но к сожалению ничего не вышло. Не помню в чем там оказалась проблема, наверное по обратной связи точка вставлялась в форму, а форма ее вообще не воспринимает, только запятые.
 
Ответить
СообщениеПытался макросом создать автозамену запятой на точку, что бы сразу с первого раза дробные числа записывались, но к сожалению ничего не вышло. Не помню в чем там оказалась проблема, наверное по обратной связи точка вставлялась в форму, а форма ее вообще не воспринимает, только запятые.

Автор - Vertep7
Дата добавления - 08.04.2025 в 12:57
Vertep7 Дата: Вторник, 08.04.2025, 13:01 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
ну если сильно хочется, то как-то так

Что то с Replace я делал, но видимо не так.
 
Ответить
Сообщение
ну если сильно хочется, то как-то так

Что то с Replace я делал, но видимо не так.

Автор - Vertep7
Дата добавления - 08.04.2025 в 13:01
Vertep7 Дата: Вторник, 08.04.2025, 13:04 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
ну если сильно хочется, то как-то так

О да, форма заработала как нужно. Без конфликтов, замечательно. В текстовое поле даже можно не только запятую, но и точку вставлять одинаково верный вариант на выходе. Супер, то что нужно. Спасибо)
Прикладываю готовый вариант кому нужно)
К сообщению приложен файл: primer_formy.xlsm (23.0 Kb)


Сообщение отредактировал Vertep7 - Вторник, 08.04.2025, 13:13
 
Ответить
Сообщение
ну если сильно хочется, то как-то так

О да, форма заработала как нужно. Без конфликтов, замечательно. В текстовое поле даже можно не только запятую, но и точку вставлять одинаково верный вариант на выходе. Супер, то что нужно. Спасибо)
Прикладываю готовый вариант кому нужно)

Автор - Vertep7
Дата добавления - 08.04.2025 в 13:04
  • Страница 1 из 1
  • 1
Поиск:

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