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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическая вставка двоеточий - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая вставка двоеточий (Макросы/Sub)
Автоматическая вставка двоеточий
ivanov1974 Дата: Среда, 02.08.2017, 12:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

Уважаемые знатоки Excel. При вводе цифр в ячейку надо, чтобы после ввода пяти любых цыфр автоматом ставилось двоеточие, потом после ввода двох цыфр, а потом после трех. Потом добавляю еще 4 цыфры и ВВОД. Т.е, я ввожу 5 цыфр, Excel автоматом в этом же режиме редактирования ставит двоеточие и курсор ставится за двоеточием для ввода следующих цыфр и т.д. Пример: надо ввести кадастовый номер: 86400:02:000:5632. Если корректирую этот номер, например с помощью клавиши Backspase из этого номера удаляю 10 последних знаков и ввожу другие цыфры, Excel сам отслеживает и раставляет двоеточие. Не знаю, возможно ли такое сделать вообще. Благодарю всех, кто откликнется.
 
Ответить
СообщениеУважаемые знатоки Excel. При вводе цифр в ячейку надо, чтобы после ввода пяти любых цыфр автоматом ставилось двоеточие, потом после ввода двох цыфр, а потом после трех. Потом добавляю еще 4 цыфры и ВВОД. Т.е, я ввожу 5 цыфр, Excel автоматом в этом же режиме редактирования ставит двоеточие и курсор ставится за двоеточием для ввода следующих цыфр и т.д. Пример: надо ввести кадастовый номер: 86400:02:000:5632. Если корректирую этот номер, например с помощью клавиши Backspase из этого номера удаляю 10 последних знаков и ввожу другие цыфры, Excel сам отслеживает и раставляет двоеточие. Не знаю, возможно ли такое сделать вообще. Благодарю всех, кто откликнется.

Автор - ivanov1974
Дата добавления - 02.08.2017 в 12:27
Manyasha Дата: Среда, 02.08.2017, 12:35 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
ivanov1974, формат ячеек 00000\:00\:000\:0000 не подойдет?
Можно и макросом, но не в режиме редактирования ячейки.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеivanov1974, формат ячеек 00000\:00\:000\:0000 не подойдет?
Можно и макросом, но не в режиме редактирования ячейки.

Автор - Manyasha
Дата добавления - 02.08.2017 в 12:35
ivanov1974 Дата: Среда, 02.08.2017, 15:30 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

Не совсем то, что хочется, но иного выбора нет. Большое спасибо, Manyasha.
 
Ответить
СообщениеНе совсем то, что хочется, но иного выбора нет. Большое спасибо, Manyasha.

Автор - ivanov1974
Дата добавления - 02.08.2017 в 15:30
Perfect2You Дата: Среда, 02.08.2017, 17:01 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Почти то, что Вам хочется - это использование особых элементов EXCEL. Например, комбобокс.
В модуль листа нужно добавить программу, которая будет реагировать на выделение курсором определенных ячеек, либо на двойной клик, либо что-то еще по Вашему выбору из того, что может EXCEL. При этом будет вызываться к жизни комбобокс, в котором программным образом реализуется то, что Вы описали. После редактирования комбобокса рожденное в нем значение может быть записано в ячейку.
 
Ответить
СообщениеПочти то, что Вам хочется - это использование особых элементов EXCEL. Например, комбобокс.
В модуль листа нужно добавить программу, которая будет реагировать на выделение курсором определенных ячеек, либо на двойной клик, либо что-то еще по Вашему выбору из того, что может EXCEL. При этом будет вызываться к жизни комбобокс, в котором программным образом реализуется то, что Вы описали. После редактирования комбобокса рожденное в нем значение может быть записано в ячейку.

Автор - Perfect2You
Дата добавления - 02.08.2017 в 17:01
Roman777 Дата: Среда, 02.08.2017, 21:43 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
ivanov1974, можно регулярными выражениями попробовать редактировать, при вызове события Worksheet_Change, но это всё-таки будет отличаться от Вашего виденья. Поскольку знаки двоеточия появляться в нужном месте будут только после ввода 14-ти чисел:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s As String
    Dim objRegExp As Object
    s = Replace(Target.Text, ":", "")
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True
    objRegExp.Pattern = "(\d{5})(\d{2})(\d{3})(\d{4})"
    Target = objRegExp.Replace(s, "$1:$2:$3:$4")
End Sub
[/vba]
[p.s.]похоже это то, что имела в виду Manyasha) и почти не отличается от предложенного во 2-м посте формата.[/p.s.]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Среда, 02.08.2017, 21:47
 
Ответить
Сообщениеivanov1974, можно регулярными выражениями попробовать редактировать, при вызове события Worksheet_Change, но это всё-таки будет отличаться от Вашего виденья. Поскольку знаки двоеточия появляться в нужном месте будут только после ввода 14-ти чисел:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s As String
    Dim objRegExp As Object
    s = Replace(Target.Text, ":", "")
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True
    objRegExp.Pattern = "(\d{5})(\d{2})(\d{3})(\d{4})"
    Target = objRegExp.Replace(s, "$1:$2:$3:$4")
End Sub
[/vba]
[p.s.]похоже это то, что имела в виду Manyasha) и почти не отличается от предложенного во 2-м посте формата.[/p.s.]

Автор - Roman777
Дата добавления - 02.08.2017 в 21:43
ivanov1974 Дата: Среда, 02.08.2017, 21:50 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

Perfect2You, Roman777, большое спасибо за участие, но это для меня темный лес.
 
Ответить
СообщениеPerfect2You, Roman777, большое спасибо за участие, но это для меня темный лес.

Автор - ivanov1974
Дата добавления - 02.08.2017 в 21:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая вставка двоеточий (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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