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

Вход

Регистрация

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

 

= Мир MS Excel/Формат значений числовой и денежный - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формат значений числовой и денежный (Макросы/Sub)
Формат значений числовой и денежный
lebensvoll Дата: Пятница, 05.05.2017, 14:36 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
Добрый день всем!!!
Прошу вас (помогите) подскажите, объясните!!!
Имеется таблица в столбце (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)
        
    End Sub
    
    Private Sub CommandButton7_Click() 'код чтоб "Сохранить отредактированный данные" выбранной строки
    'If Edit_Copy = "Edit" Then
        Cells(ActiveCell.Row, 1) = Me.TextBox1
        Cells(ActiveCell.Row, 2) = Me.ComboBox2
        Cells(ActiveCell.Row, 3) = Me.ComboBox4
        Cells(ActiveCell.Row, 4) = Me.ComboBox1
        Cells(ActiveCell.Row, 5) = Me.TextBox4
        Cells(ActiveCell.Row, 6) = CDbl(Me.TextBox6.Value)
        Cells(ActiveCell.Row, 7) = CDbl(Me.TextBox7.Value)
        Cells(ActiveCell.Row, 9) = CDbl(Me.TextBox5.Value)
        Cells(ActiveCell.Row, 11) = CDbl(Me.TextBox9.Value)
        
        MsgBox "Отредактированные данные сохранены. Закройте пожалуйста форму!!!"
Unload Me
End Sub
[/vba]

Заранее спасибо


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 14:37
 
Ответить
СообщениеДобрый день всем!!!
Прошу вас (помогите) подскажите, объясните!!!
Имеется таблица в столбце (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)
        
    End Sub
    
    Private Sub CommandButton7_Click() 'код чтоб "Сохранить отредактированный данные" выбранной строки
    'If Edit_Copy = "Edit" Then
        Cells(ActiveCell.Row, 1) = Me.TextBox1
        Cells(ActiveCell.Row, 2) = Me.ComboBox2
        Cells(ActiveCell.Row, 3) = Me.ComboBox4
        Cells(ActiveCell.Row, 4) = Me.ComboBox1
        Cells(ActiveCell.Row, 5) = Me.TextBox4
        Cells(ActiveCell.Row, 6) = CDbl(Me.TextBox6.Value)
        Cells(ActiveCell.Row, 7) = CDbl(Me.TextBox7.Value)
        Cells(ActiveCell.Row, 9) = CDbl(Me.TextBox5.Value)
        Cells(ActiveCell.Row, 11) = CDbl(Me.TextBox9.Value)
        
        MsgBox "Отредактированные данные сохранены. Закройте пожалуйста форму!!!"
Unload Me
End Sub
[/vba]

Заранее спасибо

Автор - lebensvoll
Дата добавления - 05.05.2017 в 14:36
lebensvoll Дата: Пятница, 05.05.2017, 15:20 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
Я уже и так попробовал. Когда вношу запись в таблицу:
[vba]
Код
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6).Value = Val(Replace(TextBox6.Text, ".", ","))
[/vba]
Но тогда значения вносятся (числовые) вот так: 34000,000
А как сделать так чтоб значения вносились 34,000 %)


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 15:20
 
Ответить
СообщениеЯ уже и так попробовал. Когда вношу запись в таблицу:
[vba]
Код
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6).Value = Val(Replace(TextBox6.Text, ".", ","))
[/vba]
Но тогда значения вносятся (числовые) вот так: 34000,000
А как сделать так чтоб значения вносились 34,000 %)

Автор - lebensvoll
Дата добавления - 05.05.2017 в 15:20
buchlotnik Дата: Пятница, 05.05.2017, 15:55 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2866
Репутация: 806 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Цитата
записывались именно также как в строке 5
если вы имеете ввиду строку на листе, то мы её не видим (файла нет), а если в коде - то в нём форматы не прописаны


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru
 
Ответить
Сообщение
Цитата
записывались именно также как в строке 5
если вы имеете ввиду строку на листе, то мы её не видим (файла нет), а если в коде - то в нём форматы не прописаны

Автор - buchlotnik
Дата добавления - 05.05.2017 в 15:55
lebensvoll Дата: Пятница, 05.05.2017, 16:09 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
buchlotnik, не могу понять почему он не прикрепился (((((
Я это уже понял что форматы в коде не прописаны поэтому и обращаюсь к форуму.
Вот смотрите имеется файл (см Вложение)
В ней таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате.
Запись производится через UserForm1
Но когда я начинаю сохранять запись (((( то значения в таблице вносятся вот так вот: 34000,000
А как сделать так чтоб значения вносились 34,000
как в строках 5-7 (см. таблицу).
Также есть редактирование выбранной строки и когда я отредактировал данные то при сохранении та же проблема ((((
К сообщению приложен файл: __.xlsm(69Kb)


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 16:13
 
Ответить
Сообщениеbuchlotnik, не могу понять почему он не прикрепился (((((
Я это уже понял что форматы в коде не прописаны поэтому и обращаюсь к форуму.
Вот смотрите имеется файл (см Вложение)
В ней таблица в столбце (6-F; 7-G; 8-H; 9-I) значения записываются в числовом формате, а в столбце (11-K) значения записываются в денежном формате.
Запись производится через UserForm1
Но когда я начинаю сохранять запись (((( то значения в таблице вносятся вот так вот: 34000,000
А как сделать так чтоб значения вносились 34,000
как в строках 5-7 (см. таблицу).
Также есть редактирование выбранной строки и когда я отредактировал данные то при сохранении та же проблема ((((

Автор - lebensvoll
Дата добавления - 05.05.2017 в 16:09
buchlotnik Дата: Пятница, 05.05.2017, 16:33 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2866
Репутация: 806 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Перепишите Replace правильно: [vba]
Код
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")
[/vba]


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru


Сообщение отредактировал buchlotnik - Пятница, 05.05.2017, 16:35
 
Ответить
СообщениеПерепишите Replace правильно: [vba]
Код
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")
[/vba]

Автор - buchlotnik
Дата добавления - 05.05.2017 в 16:33
lebensvoll Дата: Пятница, 05.05.2017, 16:44 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
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,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,000

Автор - lebensvoll
Дата добавления - 05.05.2017 в 16:44
lebensvoll Дата: Пятница, 05.05.2017, 16:46 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
buchlotnik, ааааа я понял нужно блин через запятую вносить в текст боксах. ВОТ Я ЛОШАРА %) %) %)
hands hands hands Спасибо вам


Кто бы ты ни был, мир в твоих руках
 
Ответить
Сообщениеbuchlotnik, ааааа я понял нужно блин через запятую вносить в текст боксах. ВОТ Я ЛОШАРА %) %) %)
hands hands hands Спасибо вам

Автор - lebensvoll
Дата добавления - 05.05.2017 в 16:46
lebensvoll Дата: Пятница, 05.05.2017, 16:57 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
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
Дата добавления - 05.05.2017 в 16:57
lebensvoll Дата: Пятница, 05.05.2017, 17:06 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
ВСЕ спасибо ОГРОМНОЕ получилось hands


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеВСЕ спасибо ОГРОМНОЕ получилось hands

Автор - lebensvoll
Дата добавления - 05.05.2017 в 17:06
lebensvoll Дата: Пятница, 05.05.2017, 17:18 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
Вот так нужно было:
[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 = Format(Cells(iRow, 11), "#.000#")
        
    End Sub
[/vba]
а потом для записи вот так вот:
[vba]
Код
Private Sub CommandButton7_Click() 'код чтоб "Сохранить отредактированный данные" выбранной строки
    'If Edit_Copy = "Edit" Then
        Cells(ActiveCell.Row, 1) = Me.TextBox1
        Cells(ActiveCell.Row, 2) = Me.ComboBox2
        Cells(ActiveCell.Row, 3) = Me.ComboBox4
        Cells(ActiveCell.Row, 4) = Me.ComboBox1
        Cells(ActiveCell.Row, 5) = Me.TextBox4
        Cells(ActiveCell.Row, 6) = CDbl(Me.TextBox6.Value)
        Cells(ActiveCell.Row, 7) = CDbl(Me.TextBox7.Value)
        Cells(ActiveCell.Row, 9) = CDbl(Me.TextBox5.Value)
        Cells(ActiveCell.Row, 11) = CDbl(Me.TextBox9.Value)
        
        MsgBox "Отредактированные данные сохранены. Закройте пожалуйста форму!!!"
Unload Me
End Sub
[/vba]
И при любой раскладке АНГЛИЙСКОЙ на клавиатуре (будь она там запятая или точка) все вносится СУПЕР!!! hands
buchlotnik, к вам вопрос!?
Цитата
CDbl
т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!?
А
Цитата
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")

дает возможность использовать и запятую и точку с клавиатуры и записывает значение как мне и нужно было (34,000), верно!?


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 17:19
 
Ответить
СообщениеВот так нужно было:
[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 = Format(Cells(iRow, 11), "#.000#")
        
    End Sub
[/vba]
а потом для записи вот так вот:
[vba]
Код
Private Sub CommandButton7_Click() 'код чтоб "Сохранить отредактированный данные" выбранной строки
    'If Edit_Copy = "Edit" Then
        Cells(ActiveCell.Row, 1) = Me.TextBox1
        Cells(ActiveCell.Row, 2) = Me.ComboBox2
        Cells(ActiveCell.Row, 3) = Me.ComboBox4
        Cells(ActiveCell.Row, 4) = Me.ComboBox1
        Cells(ActiveCell.Row, 5) = Me.TextBox4
        Cells(ActiveCell.Row, 6) = CDbl(Me.TextBox6.Value)
        Cells(ActiveCell.Row, 7) = CDbl(Me.TextBox7.Value)
        Cells(ActiveCell.Row, 9) = CDbl(Me.TextBox5.Value)
        Cells(ActiveCell.Row, 11) = CDbl(Me.TextBox9.Value)
        
        MsgBox "Отредактированные данные сохранены. Закройте пожалуйста форму!!!"
Unload Me
End Sub
[/vba]
И при любой раскладке АНГЛИЙСКОЙ на клавиатуре (будь она там запятая или точка) все вносится СУПЕР!!! hands
buchlotnik, к вам вопрос!?
Цитата
CDbl
т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!?
А
Цитата
If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")

дает возможность использовать и запятую и точку с клавиатуры и записывает значение как мне и нужно было (34,000), верно!?

Автор - lebensvoll
Дата добавления - 05.05.2017 в 17:18
buchlotnik Дата: Пятница, 05.05.2017, 18:44 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2866
Репутация: 806 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
С учётом
Цитата
Вот так нужно было:
почему вопрос ко мне? спрашивайте автора кода


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru
 
Ответить
СообщениеС учётом
Цитата
Вот так нужно было:
почему вопрос ко мне? спрашивайте автора кода

Автор - buchlotnik
Дата добавления - 05.05.2017 в 18:44
lebensvoll Дата: Пятница, 05.05.2017, 19:18 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 660
Репутация: 2 ±
Замечаний: 20% ±

Excel 2010
buchlotnik, да я лишь просил Вас (в предпоследнем посте) мне пояснить верно ли я понял действие кода.
Цитата
CDbl
т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!?
А

If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")

дает возможность использовать и запятую и точку с клавиатуры (будь то русская раскладка или США) и записывает значение как мне и нужно было (34,000), верно!?

Автору данного кода спасибо, даже и вы принимали участие в его создании (давно это было).


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Пятница, 05.05.2017, 19:21
 
Ответить
Сообщениеbuchlotnik, да я лишь просил Вас (в предпоследнем посте) мне пояснить верно ли я понял действие кода.
Цитата
CDbl
т.е. сохраняет значение согласно заданному формату в ячейке!? Верно я понял!?
А

If TextBox6.Value <> "" Then Cells(LastRow + 1, 6) = Replace(TextBox6, ",", ".")

дает возможность использовать и запятую и точку с клавиатуры (будь то русская раскладка или США) и записывает значение как мне и нужно было (34,000), верно!?

Автору данного кода спасибо, даже и вы принимали участие в его создании (давно это было).

Автор - lebensvoll
Дата добавления - 05.05.2017 в 19:18
buchlotnik Дата: Пятница, 05.05.2017, 19:51 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2866
Репутация: 806 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Цитата
CDbl
Я не понимаю - это так сложно воспользоваться справкой? И
Цитата
Replace(TextBox6, ",", ".")
делает дословно [url=https://msdn.microsoft.com/ru-ru/library/bt3szac5(v=vs.90).aspx]replace[/url] , т.е. подстановку.

Понимают код, изучая матчасть, хотя бы в объёме стандартной библиотеки (если что - я не программист и даже не технарь)


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru


Сообщение отредактировал buchlotnik - Пятница, 05.05.2017, 19:53
 
Ответить
Сообщение
Цитата
CDbl
Я не понимаю - это так сложно воспользоваться справкой? И
Цитата
Replace(TextBox6, ",", ".")
делает дословно [url=https://msdn.microsoft.com/ru-ru/library/bt3szac5(v=vs.90).aspx]replace[/url] , т.е. подстановку.

Понимают код, изучая матчасть, хотя бы в объёме стандартной библиотеки (если что - я не программист и даже не технарь)

Автор - buchlotnik
Дата добавления - 05.05.2017 в 19:51
Michael_S Дата: Суббота, 06.05.2017, 09:17 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 341 ±
Замечаний: 0% ±

Excel2016
[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 = Cells(iRow, 6).Text
        Me.TextBox7 = Cells(iRow, 7).Text
        Me.TextBox5 = Cells(iRow, 9).Text
        Me.TextBox9 = Cells(iRow, 11).Text
        
    End Sub
[/vba]


ЯД: 41001136675053
WM: R389613894253
 
Ответить
Сообщение[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 = Cells(iRow, 6).Text
        Me.TextBox7 = Cells(iRow, 7).Text
        Me.TextBox5 = Cells(iRow, 9).Text
        Me.TextBox9 = Cells(iRow, 11).Text
        
    End Sub
[/vba]

Автор - Michael_S
Дата добавления - 06.05.2017 в 09:17
RAN Дата: Суббота, 06.05.2017, 14:31 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4501
Репутация: 907 ±
Замечаний: 0% ±

2010
Работа с дробным числом в форме через запятую.
[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]

Закомментированые строки - для работы через точку.
К сообщению приложен файл: 3924557.xlsm(17Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеРабота с дробным числом в форме через запятую.
[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
Дата добавления - 06.05.2017 в 14:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формат значений числовой и денежный (Макросы/Sub)
Страница 1 из 11
Поиск:

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