Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 18.08.2009, 23:50   #1
ALEKS2008
Пользователь
 
Регистрация: 06.08.2009
Адрес: Коломыя
Сообщений: 33
Репутация: 17
По умолчанию как с помощью формулы проставить тире между цифрами

например 0672465786 а надо преобразовать в тойже ячейке, (можно в следущей, но обязательнов в той же строке) (067) 246-57-86. но тут есть нюанс, этот же телефон может податься в формате: 80672465786 или 8(067)2465786, 8 (067) 24-65-786, (067)2465786
Буду очень благодарен,сам не справляюсь !!! (возможно без макроса не обойтись)

Последний раз редактировалось ALEKS2008; 19.08.2009 в 14:38.
ALEKS2008 вне форума   Ответить с цитированием
Старый 19.08.2009, 00:20   #2
motorway
Профессионал
 
Регистрация: 28.06.2009
Сообщений: 1,950
Репутация: 196
По умолчанию

а что, код всегда только 067?
__________________
Скрипты PHP, VBA. Skype:ktmtramway Расписание электричек
Быстрый проверенный хостинг.
motorway вне форума   Ответить с цитированием
Старый 19.08.2009, 01:07   #3
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,903
Репутация: 650

skype: d_ober1
По умолчанию

Функция для обработки номера
и пример использования.
А Вы потом примените ,как надо по обработке ячеек

Код:
Public Function Telefon(lin As String) As String
Dim i As Integer

   lin = Replace(lin "-", "")
   lin = Replace(lin, "(", "")
   lin= Replace(lin, ")", "")
   lin= Replace(lin, ")", "")
   lin= Replace(lin, Space(1), "")
    lin = Replace(lin, Space(1), "")
     
     i = Len(linnn)
     
     If i < 10 Then
     
     MsgBox ("Не правильный номер")
     Exit Function
     End If
     
      lin = Mid(lin, i - 9, 10)
   Telefon = "(" & Mid(lin, 1, 3) & ")" & Space(1) & Mid(linnn, 4, 3) & "-" & Mid(lin, 7, 2) & "-" & Mid(lin, 9, 2)
     

End Function

Private Sub CommandButton1_Click()


Dim nomer   As String

nomer = Telefon(" 8 (067) 2465786")
 MsgBox (nomer)

End Sub
__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Старый 19.08.2009, 01:12   #4
motorway
Профессионал
 
Регистрация: 28.06.2009
Сообщений: 1,950
Репутация: 196
По умолчанию

Если да, можете попробовать такую замысловатую формулу (число в ячейке A1):

Код:
="(067) "&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+3;3)&"-"&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+6;2)&"-"&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+8;2)
__________________
Скрипты PHP, VBA. Skype:ktmtramway Расписание электричек
Быстрый проверенный хостинг.
motorway вне форума   Ответить с цитированием
Старый 19.08.2009, 01:16   #5
Teslenko_EA
Профессионал
 
Регистрация: 10.08.2009
Адрес: Сургут
Сообщений: 1,796
Репутация: 256

skype: Teslenko_EA
По умолчанию

Здравствуйте ALEKS2008.
добавьте к проекту книги модуль и разместите в нем подобный код
Код:
Function toTelNumber(nmb) As String
nmb = nmb.Text
nmb = Replace(nmb, " ", "")
nmb = Replace(nmb, "(", "")
nmb = Replace(nmb, ")", "")
nmb = Replace(nmb, "-", "")
If Len(nmb) = 10 Then nmb = 8 & nmb
toTelNumber = Format(nmb, "0(000)000-00-00")
End Function
и тогда формула =toTelNumber(A6) отобразит номер ячейкb A6 в заданном формате.
Удачи Вам.
Евгений.
Teslenko_EA вне форума   Ответить с цитированием
Старый 19.08.2009, 01:24   #6
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,903
Репутация: 650

skype: d_ober1
По умолчанию

motorway
Это в том случае,если один оператор,а если нет,утвердительного ответа не было.На Киевстаре кроме 067 ёще 097,098
__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Старый 19.08.2009, 01:31   #7
motorway
Профессионал
 
Регистрация: 28.06.2009
Сообщений: 1,950
Репутация: 196
По умолчанию

ну в принципе переделывается легко - заменой соотв. символов. Можно и макрос написать
__________________
Скрипты PHP, VBA. Skype:ktmtramway Расписание электричек
Быстрый проверенный хостинг.
motorway вне форума   Ответить с цитированием
Старый 19.08.2009, 02:43   #8
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Адрес: УКРАЇНА, Київ
Сообщений: 9,202
Репутация: 1877

icq: 7934250
skype: i2x0,5
По умолчанию

или такой еще вариант:
1.удаляем в столбце с телефонами открывающиеся, закрывающиеся скобки и тире с помощью Ctrl+H (найти и заменить)
2. правая кнопка мыши по столбцу / формат ячеек / (все форматы) / в строку "тип" пишем это: #(###) ###-##-## / жмем ОК
IgorGO вне форума   Ответить с цитированием
Старый 19.08.2009, 13:46   #9
ZORRO2005
Участник клуба
 
Аватар для ZORRO2005
 
Регистрация: 27.11.2006
Адрес: Москва
Сообщений: 584
Репутация: 204
По умолчанию

Без VBA см.вложение
Вложения
Тип файла: rar Телефоны.rar (4.0 Кб, 24 просмотров)
ZORRO2005 вне форума   Ответить с цитированием
Старый 19.08.2009, 14:57   #10
ALEKS2008
Пользователь
 
Регистрация: 06.08.2009
Адрес: Коломыя
Сообщений: 33
Репутация: 17
По умолчанию

="(067) "&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТА ВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТА ВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+3;3)&"-"&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТА ВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТА ВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+6;2)&"-"&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТА ВИТЬ(A1;")";"");" ";"");"-";"");ПОИСК("067";ПОДСТАВИТЬ(ПОДСТА ВИТЬ(ПОДСТАВИТЬ(A1;")";"");" ";"");"-";"");1)+8;2)

НЕ РАБОТАЕТ
ALEKS2008 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отступ между цифрами в консоле Golovastik Общие вопросы C/C++ 4 15.07.2009 23:24
Почему двоеточие и тире отображается выше обычного? Сергей Орлов Microsoft Office Word 1 10.07.2009 00:53
Как в HTML в form проставить два E-mail чебургатор HTML и CSS 1 27.05.2009 20:33
Столбцы озаглавлены цифрами. как исправить? zoom Microsoft Office Excel 2 06.10.2007 18:13
Где надо объявить и описать вводимые данные, чтобы расчитать с помощью них формулы Соня Помощь студентам 1 31.05.2007 07:07


17:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.