Страницы: 1
RSS
Запрет ввода на русском языке
 
Есть таблица, в которой одновременно работают несколько человек (сервис/доступ к книге).    
В ней существует колонка, в которой вводятся номера помещений в виде 1/258 или 2/354, так же встречаются номера вида 1/258a или 3/854b. Скажите, пожалуйста, как запретить пользователю вводить в ячейку номер с буквенным префиксом в русской раскладке, а разрешать только на АНГЛИЙСКОМ языке. Т.к. по номеру помещения эксель производит дальнейшие расчёты и сравнения с другими файлами, где тоже есть колонка с номером помещений. А номера 1/234а(RUS) и 1/234a(ENG) для экселя разные, и соответственно не происходит состыковки. Помещений очень много, и вручную проверять на каком языке вводился номер довольно хлопотное занятие. Прошу вас помочь мне в решении этой задачи. Если можно поподробней, т.к. я не сильно разбираюсь в макросах.
 
Думаю, что с решением этой задачи Вам поможет только настоящий Волшебник и точно не за просто так. Хотя это мое субъективное мнение...
<FONT COLOR="CadetBlue">
 
уточните буквы для конвертации
 
{quote}{login=The_Prist}{date=09.11.2010 11:02}{thema=}{post}Можно применить Проверку данных, можно макросы вплоть до принудительного изменения языка раскладки. Первый вариант предпочтительнее - но хлопотней. Т.к. у Вас присутсвуют разные символы и цифры, помимо букв. Но можно постараться сделать запрет на ввод букв только русского алфавита - если устроит. Но ВСЕ другие символы будут вводиться без проблем.{/post}{/quote}  
именно это и нужно, чтобы вводили номер помещения в виде цифр и слеша а букву только на английском языке. проблема присуща только к номерам где есть буква "а" и "с" так, как "б" от "b" отличаются визуально.  
расскажите как Можно применить Проверку данных?
 
для а и с русских ячейка а2
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   Dim i As Integer  
   If Target.Column <> 1 Then Exit Sub  
   For i = 1 To Len(Target)  
       If Asc(Mid(Target, i, 1)) > 191 And Asc(Mid(Target, i, 1)) < 256 Then  
           MsgBox "Неправильный ввод", vbExclamation  
           Target = ""  
       End If  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
В код листа  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
Dim c As Range, d As Range  
Set Target = Intersect(Target, [B:B]) '<<< столбец
If Target Is Nothing Then Exit Sub  
Application.EnableEvents = False  
For Each c In Target  
   If c Like "#/###[a-z]" Or c Like "#/###" Then '<<< маски ввода
   Else  
   c = ""  
       If d Is Nothing Then Set d = c Else Set d = Union(d, c)  
   End If  
Next  
Application.EnableEvents = True  
If Not d Is Nothing Then  
   d.Select  
   MsgBox "В выделенную ячейку (ячейки) были введены неверные значения", vbExclamation  
End If  
End Sub
 
Это для столбца А и для всех русских букв.
Я сам - дурнее всякого примера! ...
 
Как вариант - попробуйте желтые ячейки. (из русских букв можно ввести только "Ё" и "ё"
 
Косяк. Так:  
Private Sub Worksheet_Change(ByVal Target As Range)  
   Dim i As Integer  
   If Target.Column <> 1 Then Exit Sub  
   For i = 1 To Len(Target)  
       If Asc(Mid(Target, i, 1)) > 191 And Asc(Mid(Target, i, 1)) < 256 Then  
           MsgBox "Неправильный ввод", vbExclamation  
           Target = ""  
       Exit Sub  
       End If  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Всем привет!    
Жара :)
<FONT COLOR="CadetBlue">
 
могу предложить вариант выбора буквы из списка, это позволяет исключить ошибку при любой раскладке клавиатуры, и не надо огород городить с макросами !
Редко но метко ...
 
Здесь игрались формулами - "вопрос по ячейкам и ее внутренностям": <BR>http://www.sql.ru/forum/actualthread.aspx?tid=800151
 
{quote}{login=Михаил}{date=09.11.2010 11:37}{thema=}{post}Как вариант - попробуйте желтые ячейки. (из русских букв можно ввести только "Ё" и "ё"{/post}{/quote}  
 
Добрый день, Михаил. Желтые ячейки работают отлично.  Скажите пожалуйста где искать сам макрос
 
{quote}{login=tatjana}{date=31.07.2011 01:34}{thema=Re: }{post}{quote}{login=Михаил}{date=09.11.2010 11:37}{thema=}{post}Как вариант - попробуйте желтые ячейки. (из русских букв можно ввести только "Ё" и "ё"{/post}{/quote}  
 
Добрый день, Михаил. Желтые ячейки работают отлично.  Скажите пожалуйста где искать сам макрос{/post}{/quote}  
там нет макросов.......  
ищите формулу в проверке данных
Спасибо
 
Михаил, подскажите пожалуйста, как подправить формулу (в проверке данных)так, чтобы запрещенными оказались английские буквы (а не русские). Пробовал "=И(... >192)" - не вышло.
 
Я не Михаил, но попробую ответить...
 
Kim, огромное спасибо. В все работает.
Страницы: 1
Читают тему
Наверх