Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 13:31   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Действия KeyPress в ячейке excel

Здравствуйте Уважаемые программисты!
Подскажите пожалуйста, как прописать аналогичный код:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim txt As String
txt = Me.TextBox1
If InStr(1, txt, ",") > 0 And Len(txt) - InStr(1, txt, ",") = 3 Then KeyAscii = 0
Select Case KeyAscii
Case 8:
Case 44: KeyAscii = IIf(InStr(1, txt, ",") > 0, 0, 44)
Case 46: KeyAscii = IIf(InStr(1, txt, ",") > 0, 0, 44)
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub

но не для элемента формы "TextBox" (как в коде выше), а для ячейки Excel, т.е. чтобы аналогичный код работал при попытке ввода в ячейку excel без формы?
Заранее спасибо.
ольгаг вне форума Ответить с цитированием
Старый 12.06.2012, 14:27   #2
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

никак.
у ячеек листа нет такого функционала.
но есть "проверка данных".
может быть, это нужно?
ikki_pf вне форума Ответить с цитированием
Старый 12.06.2012, 15:13   #3
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Нужно писать код только для этой процедуры
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 12.06.2012, 17:32   #4
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Цитата:
Сообщение от ikki_pf Посмотреть сообщение
никак.
у ячеек листа нет такого функционала.
но есть "проверка данных".
может быть, это нужно?
Проверку данных для ячейки сделала (действительное между 0 и 100000, разделитель у меня запятая по умолчанию), но при вводе в ячейку, например, "6.7" число преобразуется в дату, что не должно быть. Подскажите пожалуйста как запретить преобразование числа в дату?

Спасибо.

Последний раз редактировалось ольгаг; 12.06.2012 в 18:06.
ольгаг вне форума Ответить с цитированием
Старый 12.06.2012, 21:18   #5
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Поелику "например, "6.7" " у вас ни в коем разе не число, поставьте формат ячеек "Текстовый". Или вводите число - 6,7.
RAN. вне форума Ответить с цитированием
Старый 12.06.2012, 22:21   #6
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Цитата:
Сообщение от RAN. Посмотреть сообщение
Поелику "например, "6.7" " у вас ни в коем разе не число, поставьте формат ячеек "Текстовый". Или вводите число - 6,7.
Если формат ячеек Текстовый, то не будет работать проверка данных как число. А на счет запятой все верно, но пользователь может ввести случайно точку.
Подскажите пожалуйста, может можно сделать чтобы при преобразовании числа в дату (т.е. при вводе точки) в данной ячейке срабатывала какая-нибудь "ошибка"? Заранее спасибо.
ольгаг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel формулы и действия с таблицей lilia01 Microsoft Office Excel 1 02.07.2011 17:14
VBA.Excel.Повторить определенные действия столько раз, сколько указано в ячейке. Alex4583 Microsoft Office Excel 0 01.07.2011 10:07
Каким образом можно сделать таблицу Excel в ячейке Excel? Severny Microsoft Office Excel 3 08.10.2010 09:13
Логические действия в excel multoff Помощь студентам 2 25.03.2010 18:24
Чтобы все действия происходили в одной ячейке? abdumanon Microsoft Office Excel 8 07.04.2009 11:52