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

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

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

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

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

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

например 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
По умолчанию

а что, код всегда только 067?
motorway вне форума Ответить с цитированием
Старый 19.08.2009, 01:07   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

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

Код:
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
По умолчанию

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

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

Здравствуйте 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,907
По умолчанию

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

ну в принципе переделывается легко - заменой соотв. символов. Можно и макрос написать
motorway вне форума Ответить с цитированием
Старый 19.08.2009, 02:43   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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

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

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отступ между цифрами в консоле 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