Добрый день всем!!! Прошу вас (помогите) подскажите, объясните!!! Имеется таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате. Ни как не могу разобраться как нужно поправить в код чтоб они записывались именно также как в строке 5: [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Журнал прихода" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox2.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox4.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox1.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 5) = TextBox4.Value If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = TextBox6.Value If TextBox7.Value <> "" Then Cells(LastRow + 1, 7) = TextBox7.Value If TextBox5.Value <> "" Then Cells(LastRow + 1, 9) = TextBox5.Value If TextBox9.Value <> "" Then Cells(LastRow + 1, 11) = TextBox9.Value Unload Me End Sub
[/vba] А также когда я произвожу редактирование выбранной строки: [vba]
Код
Private Sub UserForm_Ini() 'код для "редактирования выбранной строки" загрузка данных на "UserForm2" iRow = ActiveCell.Row If Cells(iRow, 2) = "" Then MsgBox "Вы выбрали пустую строку. Пожалуйста выберите заполненную строку для редактирования. И Повторите попытку.", 48, "Ошибка!" End End If If Edit_Copy = "Edit" Then Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" Else Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" FreeRow = Sheets("ВЕСОВАЯ приход").Cells(Rows.Count, 2).End(xlUp).Row + 1 End If Me.TextBox1 = Format(Cells(iRow, 1), "dd.mm.yyyy") Me.ComboBox2 = Cells(iRow, 2) Me.ComboBox4 = Cells(iRow, 3) Me.ComboBox1 = Cells(iRow, 4) Me.TextBox4 = Cells(iRow, 5) Me.TextBox6 = Format(Cells(iRow, 6), "#,#") Me.TextBox7 = Format(Cells(iRow, 7), "#,#") Me.TextBox5 = Format(Cells(iRow, 9), "#,#") Me.TextBox9 = Cells(iRow, 11)
MsgBox "Отредактированные данные сохранены. Закройте пожалуйста форму!!!" Unload Me End Sub
[/vba]
Заранее спасибо
Добрый день всем!!! Прошу вас (помогите) подскажите, объясните!!! Имеется таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате. Ни как не могу разобраться как нужно поправить в код чтоб они записывались именно также как в строке 5: [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Журнал прихода" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox2.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox4.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox1.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 5) = TextBox4.Value If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = TextBox6.Value If TextBox7.Value <> "" Then Cells(LastRow + 1, 7) = TextBox7.Value If TextBox5.Value <> "" Then Cells(LastRow + 1, 9) = TextBox5.Value If TextBox9.Value <> "" Then Cells(LastRow + 1, 11) = TextBox9.Value Unload Me End Sub
[/vba] А также когда я произвожу редактирование выбранной строки: [vba]
Код
Private Sub UserForm_Ini() 'код для "редактирования выбранной строки" загрузка данных на "UserForm2" iRow = ActiveCell.Row If Cells(iRow, 2) = "" Then MsgBox "Вы выбрали пустую строку. Пожалуйста выберите заполненную строку для редактирования. И Повторите попытку.", 48, "Ошибка!" End End If If Edit_Copy = "Edit" Then Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" Else Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" FreeRow = Sheets("ВЕСОВАЯ приход").Cells(Rows.Count, 2).End(xlUp).Row + 1 End If Me.TextBox1 = Format(Cells(iRow, 1), "dd.mm.yyyy") Me.ComboBox2 = Cells(iRow, 2) Me.ComboBox4 = Cells(iRow, 3) Me.ComboBox1 = Cells(iRow, 4) Me.TextBox4 = Cells(iRow, 5) Me.TextBox6 = Format(Cells(iRow, 6), "#,#") Me.TextBox7 = Format(Cells(iRow, 7), "#,#") Me.TextBox5 = Format(Cells(iRow, 9), "#,#") Me.TextBox9 = Cells(iRow, 11)
buchlotnik, не могу понять почему он не прикрепился ((((( Я это уже понял что форматы в коде не прописаны поэтому и обращаюсь к форуму. Вот смотрите имеется файл (см Вложение) В ней таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате. Запись производится через UserForm1 Но когда я начинаю сохранять запись (((( то значения в таблице вносятся вот так вот: 34000,000 А как сделать так чтоб значения вносились 34,000 как в строках 5-7 (см. таблицу). Также есть редактирование выбранной строки и когда я отредактировал данные то при сохранении та же проблема ((((
buchlotnik, не могу понять почему он не прикрепился ((((( Я это уже понял что форматы в коде не прописаны поэтому и обращаюсь к форуму. Вот смотрите имеется файл (см Вложение) В ней таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате. Запись производится через UserForm1 Но когда я начинаю сохранять запись (((( то значения в таблице вносятся вот так вот: 34000,000 А как сделать так чтоб значения вносились 34,000 как в строках 5-7 (см. таблицу). Также есть редактирование выбранной строки и когда я отредактировал данные то при сохранении та же проблема ((((lebensvoll
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Журнал прихода" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox2.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox4.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox1.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 5) = TextBox4.Value If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".") If TextBox7.Value <> "" Then Cells(LastRow + 1, 7) = Replace(TextBox7, ",", ".") If TextBox5.Value <> "" Then Cells(LastRow + 1, 9) = Replace(TextBox5, ",", ".") If TextBox9.Value <> "" Then Cells(LastRow + 1, 11) = TextBox9.Value Unload Me End Sub
[/vba] после сохранения "ДОБАВИТЬ ЗАПИСЬ" значения TextBox6-7-5 вносятся не так как мне нужно должно быть 34,000 а записывает как 34000,000
buchlotnik, результат остался такой же [vba]
Код
Private Sub Butt_ok_Click() 'Данный код для записи данных в нужные нам ячейки в таблицу на листе "Журнал прихода" Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row If TextBox1.Value <> "" Then Cells(LastRow + 1, 1) = TextBox1.Value If ComboBox2.Value <> "" Then Cells(LastRow + 1, 2) = ComboBox2.Value If ComboBox4.Value <> "" Then Cells(LastRow + 1, 3) = ComboBox4.Value If ComboBox1.Value <> "" Then Cells(LastRow + 1, 4) = ComboBox1.Value If TextBox4.Value <> "" Then Cells(LastRow + 1, 5) = TextBox4.Value If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".") If TextBox7.Value <> "" Then Cells(LastRow + 1, 7) = Replace(TextBox7, ",", ".") If TextBox5.Value <> "" Then Cells(LastRow + 1, 9) = Replace(TextBox5, ",", ".") If TextBox9.Value <> "" Then Cells(LastRow + 1, 11) = TextBox9.Value Unload Me End Sub
[/vba] после сохранения "ДОБАВИТЬ ЗАПИСЬ" значения TextBox6-7-5 вносятся не так как мне нужно должно быть 34,000 а записывает как 34000,000lebensvoll
buchlotnik, тогда вопрос остался с денежным форматом. При редактировании выбранной строки: [vba]
Код
Private Sub UserForm_Ini() 'код для "редактирования выбранной строки" загрузка данных на "UserForm2" iRow = ActiveCell.Row If Cells(iRow, 2) = "" Then MsgBox "Вы выбрали пустую строку. Пожалуйста выберите заполненную строку для редактирования. И Повторите попытку.", 48, "Ошибка!" End End If If Edit_Copy = "Edit" Then Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" Else Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" FreeRow = Sheets("ВЕСОВАЯ приход").Cells(Rows.Count, 2).End(xlUp).Row + 1 End If Me.TextBox1 = Format(Cells(iRow, 1), "dd.mm.yyyy") Me.ComboBox2 = Cells(iRow, 2) Me.ComboBox4 = Cells(iRow, 3) Me.ComboBox1 = Cells(iRow, 4) Me.TextBox4 = Cells(iRow, 5) Me.TextBox6 = Format(Cells(iRow, 6), "#.000#") Me.TextBox7 = Format(Cells(iRow, 7), "#.000#") Me.TextBox5 = Format(Cells(iRow, 9), "#.000#") Me.TextBox9 = Cells(iRow, 11)
End Sub
[/vba] Все загружается но при редактировании данных запись из TextBox9 вносится уже не как она была сохранена до этого (450,00р) а уже КАК Я ПОНИМАЮ В ВИДЕ ТЕКСТА 450
buchlotnik, тогда вопрос остался с денежным форматом. При редактировании выбранной строки: [vba]
Код
Private Sub UserForm_Ini() 'код для "редактирования выбранной строки" загрузка данных на "UserForm2" iRow = ActiveCell.Row If Cells(iRow, 2) = "" Then MsgBox "Вы выбрали пустую строку. Пожалуйста выберите заполненную строку для редактирования. И Повторите попытку.", 48, "Ошибка!" End End If If Edit_Copy = "Edit" Then Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" Else Me.Caption = "Редактирование выбранной строки" Me.CommandButton7.Caption = "Сохранить отредактированный данные" FreeRow = Sheets("ВЕСОВАЯ приход").Cells(Rows.Count, 2).End(xlUp).Row + 1 End If Me.TextBox1 = Format(Cells(iRow, 1), "dd.mm.yyyy") Me.ComboBox2 = Cells(iRow, 2) Me.ComboBox4 = Cells(iRow, 3) Me.ComboBox1 = Cells(iRow, 4) Me.TextBox4 = Cells(iRow, 5) Me.TextBox6 = Format(Cells(iRow, 6), "#.000#") Me.TextBox7 = Format(Cells(iRow, 7), "#.000#") Me.TextBox5 = Format(Cells(iRow, 9), "#.000#") Me.TextBox9 = Cells(iRow, 11)
End Sub
[/vba] Все загружается но при редактировании данных запись из TextBox9 вносится уже не как она была сохранена до этого (450,00р) а уже КАК Я ПОНИМАЮ В ВИДЕ ТЕКСТА 450 lebensvoll
buchlotnik, да я лишь просил Вас (в предпоследнем посте) мне пояснить верно ли я понял действие кода.
Цитата
CDbl т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!? А
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")
дает возможность использовать и запятую и точку с клавиатуры (будь то русская раскладка или США) и записывает значение как мне и нужно было (34,000), верно!?
Автору данного кода спасибо, даже и вы принимали участие в его создании (давно это было).
buchlotnik, да я лишь просил Вас (в предпоследнем посте) мне пояснить верно ли я понял действие кода.
Цитата
CDbl т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!? А
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")
дает возможность использовать и запятую и точку с клавиатуры (будь то русская раскладка или США) и записывает значение как мне и нужно было (34,000), верно!?
Автору данного кода спасибо, даже и вы принимали участие в его создании (давно это было).lebensvoll
Кто бы ты ни был, мир в твоих руках
Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 19:21
Работа с дробным числом в форме через запятую. [vba]
Код
Private Sub CommandButton1_Click() ' Cells(Rows.Count, 1).End(xlUp).Offset(1) = Val(TextBox1.Text) Cells(Rows.Count, 1).End(xlUp).Offset(1) = CDbl(TextBox1.Text) End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 ' Case 46, 44: If TextBox1 Like ("*,*") Then KeyAscii = 0 Else KeyAscii = 44 '[","."] Case 46, 44: If TextBox1 Like ("*.*") Then KeyAscii = 0 Else KeyAscii = 46 '[","."] Case Else: KeyAscii = 0 End Select End Sub Private Sub UserForm_Initialize() ' If Len(ActiveCell) Then Me.TextBox1 = ActiveCell.Value If Len(ActiveCell) Then Me.TextBox1 = Format(ActiveCell.Value, "@") End Sub
[/vba]
Закомментированые строки - для работы через точку.
Работа с дробным числом в форме через запятую. [vba]
Код
Private Sub CommandButton1_Click() ' Cells(Rows.Count, 1).End(xlUp).Offset(1) = Val(TextBox1.Text) Cells(Rows.Count, 1).End(xlUp).Offset(1) = CDbl(TextBox1.Text) End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 ' Case 46, 44: If TextBox1 Like ("*,*") Then KeyAscii = 0 Else KeyAscii = 44 '[","."] Case 46, 44: If TextBox1 Like ("*.*") Then KeyAscii = 0 Else KeyAscii = 46 '[","."] Case Else: KeyAscii = 0 End Select End Sub Private Sub UserForm_Initialize() ' If Len(ActiveCell) Then Me.TextBox1 = ActiveCell.Value If Len(ActiveCell) Then Me.TextBox1 = Format(ActiveCell.Value, "@") End Sub
[/vba]
Закомментированые строки - для работы через точку.RAN