Adicionando o dígito 9 para quem usa o código da operadora - Tecnologias

Tecnologias

Assuntos diversos ligados à tecnologia.

Syndication

News

Receive Email Updates



Adicionando o dígito 9 para quem usa o código da operadora

Ontem falando com um amigo, ele me disse que sempre armazenava os telefones com o código da operadora  na frente e que portanto meu código não funcionaria para ele. Pois aqui está o código adaptado para este tipo de cenário.

De quebra ele ainda adiciona os parênteses, os espaços e os hifens aos números onde o 9 já havia sido adicionado.

Sub AlteraTelefones()
  'Autor: Carlos Fernando Paleo da Rocha
  Dim objApp As Application
  Dim objNS As NameSpace
  Dim objFolder As MAPIFolder
  Dim objItems As Items
  Dim objItem As Object
  Dim newTel As String

  Set objApp = CreateObject("Outlook.Application")
  Set objNS = objApp.GetNamespace("MAPI")
  Set objFolder = objNS.PickFolder
  If Not objFolder Is Nothing Then
    Set objItems = objFolder.Items
    For Each objItem In objItems
        newTel = LTrim(RTrim(Replace(Replace(Replace(Replace(RTrim(objItem.MobileTelephoneNumber), "(", ""), ")", ""), "-", ""), " ", "")))
        Select Case Len(newTel)
        Case 10
            If Left(newTel, 2) = "11" Then
                objItem.MobileTelephoneNumber = "(" & Left(newTel, 2) & ") 9" & Left(Right(newTel, Len(newTel) - 2), 4) & "-" & Right(newTel, 4)
                objItem.Save
            End If
        Case 11
            If Left(newTel, 3) = "011" Then
                objItem.MobileTelephoneNumber = "(" & Left(newTel, 3) & ") 9" & Left(Right(newTel, Len(newTel) - 3), 4) & "-" & Right(newTel, 4)
                objItem.Save
            ElseIf Left(newTel, 3) = "119" Then
                objItem.MobileTelephoneNumber = "(" & Left(newTel, 2) & ") " & Left(Right(newTel, Len(newTel) - 2), 5) & "-" & Right(newTel, 4)
                objItem.Save
            End If
        Case 12
            If Left(newTel, 4) = "0119" Then
                objItem.MobileTelephoneNumber = "(" & Left(newTel, 3) & ") " & Left(Right(newTel, Len(newTel) - 3), 5) & "-" & Right(newTel, 4)
                objItem.Save
            End If
        Case 13
            If Right(Left(newTel, 5), 2) = "11" Then
                objItem.MobileTelephoneNumber = Left(newTel, 3) & " (" & Right(Left(newTel, 5), 2) & ") 9" & Left(Right(newTel, Len(newTel) - 5), 4) & "-" & Right(newTel, 4)
                objItem.Save
            End If
        End Select
    Next
  End If
  Set objItems = Nothing
  Set objItem = Nothing
  Set objFolder = Nothing
  Set objNS = Nothing
  Set objApp = Nothing
End Sub

 

Para saber como utilizar este código veja a explicação neste post.

Published quarta-feira, 1 de agosto de 2012 12:25 by Paleo

Filed under:

Comments

# Adicionando o dígito 9 aos números do prefixo 011 - Tecnologias@ quarta-feira, 1 de agosto de 2012 12:58

Pingback from  Adicionando o dígito 9 aos números do prefixo 011 - Tecnologias

Adicionando o dígito 9 aos números do prefixo 011 - Tecnologias

# re: Adicionando o dígito 9 para quem usa o código da operadora@ domingo, 26 de agosto de 2012 10:09

Muito oportuno seu post. Apropriado para todos os usuários, pois a Microsoft não irá se envolver nos requisitos do órgão regulador, o que não seria técnico, mas institucional. Entretanto,seria possível postar a solução para quem tem o código da operadora à frente do número, sem colocar os parênteses e o hífen? Até parece possível removê-los nos comandos "case xy", mas fica mais difícil visualizar como fazê-lo na definição do "newTel" para quem não conhece o Visual Basic. Obrigado.

Ricardo Nero

# re: Adicionando o dígito 9 para quem usa o código da operadora@ segunda-feira, 27 de agosto de 2012 9:27

Caro Ricardo Nero,

basta substituires o Select Case pelo abaixo:

Select Case Len(newTel)

       Case 10

           If Left(newTel, 2) = "11" Then

               objItem.MobileTelephoneNumber = Left(newTel, 2) & "9" & Left(Right(newTel, Len(newTel) - 2), 4) & Right(newTel, 4)

               objItem.Save

           End If

       Case 11

           If Left(newTel, 3) = "011" Then

               objItem.MobileTelephoneNumber = Left(newTel, 3) & " 9" & Left(Right(newTel, Len(newTel) - 3), 4) & Right(newTel, 4)

               objItem.Save

           ElseIf Left(newTel, 3) = "119" Then

               objItem.MobileTelephoneNumber = Left(newTel, 2) & " " & Left(Right(newTel, Len(newTel) - 2), 5) & Right(newTel, 4)

               objItem.Save

           End If

       Case 12

           If Left(newTel, 4) = "0119" Then

               objItem.MobileTelephoneNumber = Left(newTel, 3) & " " & Left(Right(newTel, Len(newTel) - 3), 5) & Right(newTel, 4)

               objItem.Save

           End If

       Case 13

           If Right(Left(newTel, 5), 2) = "11" Then

               objItem.MobileTelephoneNumber = Left(newTel, 3) & " " & Right(Left(newTel, 5), 2) & " 9" & Left(Right(newTel, Len(newTel) - 5), 4) & Right(newTel, 4)

               objItem.Save

           End If

       End Select

Paleo

Leave a Comment

(required) 
(required) 
(optional)
(required)