Страницы: 1
RSS
Закрыть форму с сохранением значения в ячейке
 
Как сделать сохранение значения в ячейке после нажатия ESC?
Более подробно в приложении.
 
Попробуйте в модуль формы:
Код
Private Sub UserForm_Deactivate()
        [A1] = Me.ComboBox1.Value
End Sub
Но к ESC это отношения не имеет, это просто сохраняет значение в ячейке. Если устроит, то и хорошо, если нет - нужно подумать над самой задачей и названием темы
P.S. Посмотрел файл  :) [А1]=[А1], и ничего придумывать не надо. На закрытие формы или на деактивацию - сами решите.
Изменено: _Igor_61 - 15.12.2018 18:34:16
 
Может и устроило-бы. Не получается у меня, и так и сяк пробую не меняется ничего, Значение в ячейки не сохраняется, Можете пожалуйста в файле примере внести изменения?
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Private Sub UserForm_Terminate()
Что больше нравится?
 
Мне просто значение сохранить, что из предложенного лучше, хуже понятия пока не имею.
следующая строка какая?
пробывал прописать в модуле форме одновременно и по одиночно реакции 0
Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ActiveCell = ComboBox1.Value 
   Unload UserForm1
        End Sub

    Private Sub UserForm_Terminate()
   ComboBox1.Value = ActiveCell
   Unload UserForm1
        End Sub

Private Sub UserForm_Deactivate()
    ActiveCell = ComboBox1.Value
End Sub
Изменено: Dobepman - 19.12.2018 12:33:56
 
Так что конкретно не получается?
 
Юрий М, Когда форма закрывается через esc значение в ячейке превращается в "" т.е. 0, а нужно чтобы оно сохранялось
 
Dobepman, Вам не кажется, что тут что-то перепутали?
Код
Private Sub UserForm_Terminate()
   ComboBox1.Value = ActiveCell
   Unload UserForm1
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Dobepman, выбрали месяц, в ячейке нужно сохранить месяц или день недели?
 
JayBhagavan, Ох.
пробывал так:
Код
Private Sub UserForm_Terminate()
   ComboBox1.Value = ActiveCell
   Unload UserForm1
End Sub
так
Код
Private Sub UserForm_Terminate()
     Unload UserForm1
 ComboBox1.Value = ActiveCell
End Sub
и так
Код
Private Sub UserForm_Terminate()
     Unload UserForm1
 End Sub
те же строчки тестил в модулях
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Private Sub UserForm_Deactivate()
Изменено: Dobepman - 19.12.2018 12:50:18
 
Цитата
Dobepman написал:
пробывал
Опять... Пробовал - так правильно.
 
Dobepman, Вы так и не поняли. Найдите разницу между:
Код
ComboBox1.Value = ActiveCell
и
Код
ActiveCell = ComboBox1.Value

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Dobepman, Вы на вопросы будете отвечать?
 
Исправил диапазон в модуле листа, исправил свойство RowSource КомбоБокса - зачем Вы назначили целиком столбцы? Добавил проверку ListIndex.
Если задаёте вопросы, то и отвечайте тем, кто пытается Вам помочь.
 
Dobepman, не пудрите мозги людям. Файл Sanja
Отсюда с добавкой
Код
Private Sub UserForm_Terminate()
    ActiveCell = ComboBox1.Value 
End Sub

прекрасно работает.
 
JayBhagavan, это то же делал, но видимо не в том месте.
Юрий М, Благодарю! 100% ответ на вопросик!
RANфайл Sanja изменен в сравнении с примером, а это значит он не делает того что даже в примере есть. Соответственно добавка не помогает, да и ее я тоже пробовал.
 
ТАЩУСЬ! Як шпала по забору!
Цитата
Dobepman написал:
Юрий М, Благодарю! 100% ответ на вопросик!
Даже 1% близко не лежало
Цитата
Dobepman написал:
а это значит он не делает того что даже в примере есть
100% отвечает (и делает соответственно) заданным условиям (вопросам)

Котяра, не прими случайно на свой счет!  ;)
Изменено: RAN - 19.12.2018 18:59:41
 
Dobepman,  если что-то не получается - приложите файл, где не получается. Вы выкладываете код, но откуда кто знает, куда и как Вы его вставляете и что у Вас на листах в действительности творится.  
 
Igor_61, По моему именно так и делаю. Все так как в файле примере.

По нажатию enter ничего не происходит. Если форма появилась, но ничего не вводить и нажать ентер, то реакции ни какой. Подозреваю что нужно добавить еще одно условие следующим за этим
Код
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Но какое? Или я не прав?
Пример в посте
Как я вижу работу кода. Изначально значение выбирается из второй колонке (комбобокс настроен на две колонке) и при повторной активации выбору не откуда происходить т.к. в поле уже стоит значение из второй колонке
Изменено: Dobepman - 19.12.2018 20:11:04
 
Цитата
_Igor_61 написал:
приложите файл, где не получается
Dobepman, наверное, Вы не понимаете о чем Вас просят: нужно файл не из первого сообщения, а конкретный файл, куда Вы после ответов вставили код из ответов и где этот код не работает.
Ну и  еще непонятно  #19:
Цитата
Dobepman написал:
По нажатию enter ничего не происходит
Если правильно понимаю, изначально речь шла об ESC? Даже если точнее - речь шла о сохранении значения в ячейке при факте закрытия формы. Чего Вы хотите от ENTER?
По названию темы и первоначальному описанию задачи уже достаточно было ответа во втором сообщении, после этого Вам предложили еще кучу вариантов. И теперь Вы пишете:
Цитата
Dobepman написал:
Как я вижу работу кода. Изначально значение выбирается из второй колонке (комбобокс настроен на две колонке) и при повторной активации выбору не откуда происходить т.к. в поле уже стоит значение из второй колонке
Вы уж сами как-то определитесь, в чем именно нужно Вам помочь
 
_Igor_61, да Вы правы. На будущее учту.
Страницы: 1
Наверх