Страницы: 1
RSS
Как автоматически заменять запятую на точку при вводе данных?
 
Всем привет!  
 
У меня такой вопрос.    
Результаты измерений с прибора через компорт вводятся в ячейки эксель (в виде текста, разделитель-точка). Но иногда необходимо подправить данные вручную с клавиатуры. Рабочие, которые делают измерения, часто вводят данные через запятую. Как сделать так, чтобы запятая автоматически менялась на точку при неправильном вводе или ,хотя бы, появлялось сообщение об ошибке.Спасибо заранее.
 
Установить в XL разделитель "." и точка... Как вариант, разумется... ;) -55677-
 
Дело в том, что результаты измерений потом переводятся в числовой формат с разделителем запятая в этой же книге и может возникнуть путаница. А все переделывать у меня уже нет времени. Может макросом каким -нибудь?
 
Так Вам нужно исправить существующие данные или предотвратить ввод? Ctrl+H не спасает?
 
Мне нужно предотвратить неправильный ввод.
 
выделить диапазон где может появиться ненужная запятая  
 
 
вкладка "данные" - проверка данных  
 
на закладке параметры  
тип данных - другой  
формула - =ЕОШ(ПОИСК(",";A1))  
 
ну, вместо A1 - первая ячйка в выделенном диапазоне  
 
на закладке сообщение об ошибке - текст что-то типа "введена запятая, исправьте на точку"
 
Вот спасибо. Щас буду пробовать. Я подозревал, что это не очень сложно, но слабоват в екселе пока.
 
{quote}{login=Финский летчик}{date=29.11.2012 01:04}{thema=}{post}Мне нужно предотвратить неправильный ввод.{/post}{/quote}И в то же время "А все переделывать у меня уже нет времени". Вы уж определитесь...  
Скопируйте в модуль листа следующий код:  
===  
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Not Intersect(Target, Range("A1:A100")) Is Nothing Then  
       Target = Replace(Target, ",", ".")  
   End If  
End Sub  
===  
Подразумевается, что столбцу (диапазону) назначен текстовый формат.
 
Ух ты. Вот спасибо так спасибо. Я Вам тоже когда-нибудь пригожусь.
 
Вот если бы радикально решить вопрос-запретить вообще ввод данных с клавиатуры. Если защитить лист-то тогда и с измерительного прибора данные не проходят. Сисадмин обещал помочь, но у него вечно нет времени и он не понимает важности задачи.
 
Мне как раз нужно нелегально в Финляндию.
 
{quote}{login=Финский летчик}{date=29.11.2012 01:25}{thema=}{post}Вот если бы радикально решить вопрос-запретить вообще ввод данных с клавиатуры. {/post}{/quote}Радикально? - прячем клавиатуру.
 
{quote}{login=Юрий М}{date=29.11.2012 01:25}{thema=}{post}Мне как раз нужно нелегально в Финляндию.{/post}{/quote}  
 
А при чем тут Финляндия? Я в Киеве живу.  
 
А с клавиатуры нужно вводить всякие там атрибуты измерений-номер бригады, тип изделия и т.п. Клавиатура нужна.
 
Ну Вы же сами написали - "Я Вам тоже когда-нибудь пригожусь" - вот я и подумал... Ник ведь какой? Руст тоже не из Москвы.  
По поводу запрета: Вам ведь только в отдельных ячейках запретить? Попробуйте заменить    
Target = Replace(Target, ",", ".")  
на  
Target = Empty  
Нужно только проверить - будут ли отображаться данные с Сом-порта.
 
Да ник-это для красоты. Спасибо большое. Я буду сейчас пробовать.
 
Ещё можно запретить становится на эти ячейки - событием Worksheet_SelectionChange(ByVal Target As Range) сдвигать выделение в сторону.
 
Ага, только всё равно в Финляндию не подбросит.
 
Происходит следующее:при вводе с клавиатуры-цифры записались, а после перехода на следующую ячейку-исчезли.Но. После этого программа подвисает секунд на пять с морганием курсора.Через компорт тоже самое.
 
Но Вы и так мне уже очень помогли. с этим запретом на ввод данных с клавиатуры могут быть сложности из-за того, что данные в эксель с компорта вводятся посредством еще одно программы, работу которой я не знаю.
 
Для той программы помешать не должно - она не должна выделять ячейки.  
 
офф...  
В Финляндию нужно на пароме, на своей машине, и с лыжами :)  
Говорят неплохо, ездили знакомые. Тоже вот подумываю... Мне ближе чем Альпы/Татры.  
А ещё в Норвегию аналогично ездят - но там долго от Стокгольма добираться.
 
Попробуйте такой код (для столбца А):  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
   If Target.Column = 1 Then Target.Offset(0, 1).Activate  
End Sub  
Для столбца В Column = 2 и т.д.
Страницы: 1
Читают тему
Наверх