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

Tecnologias

Assuntos diversos ligados à tecnologia.

Syndication

News

Receive Email Updates



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

Recentemente uma resolução da ANATEL determinou que devemos adicionar o dígito 9 a todos números de celulares do prefixo 011. Esta tarefa feita manualmente seria um gigantesco transtorno para quem possui muitos registros, portanto o ideal é usar um script para tanto.

Como nem todos sabem criar estes scripts, disponibilizo aqui um para o Outlook 2010 (que também deve funcionar no 97, 2003 e 2011).

 

Detalhe MUITO importante:

Este código não funcionará para quem armazena o código da operadora antes do número do telefone! Neste caso use a orientação constante neste post.

Como utilizá-lo:

  1. Abra o Outlook e pressione Alt + F11 para exibir o Editor do Visual Basic;

    image

  2. Nesta tela clique em Inserir e depois em Módulo;
  3. Copie o código abaixo e cole ele na área à direita;

    image

               
  4. 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
            If Len(objItem.MobileTelephoneNumber) = 11 Or Len(objItem.MobileTelephoneNumber) = 10 Then
                    newTel = LTrim(RTrim(Replace(Replace(Replace(Replace(RTrim(objItem.MobileTelephoneNumber), "(", ""), ")", ""), "-", ""), " ", "")))
                    If Left(newTel, 3) = "011" Then
                        newTel = Left(newTel, 3) & 9 & Right(newTel, Len(newTel) - 3)
                        objItem.MobileTelephoneNumber = "(" & Left(newTel, 3) & ") " & Right(newTel, Len(newTel) - 3)
                        objItem.Save
                    ElseIf Left(newTel, 2) = "11" Then
                        newTel = Left(newTel, 2) & 9 & Right(newTel, Len(newTel) - 2)
                        objItem.MobileTelephoneNumber = "(" & Left(newTel, 2) & ") " & Right(newTel, Len(newTel) - 2)
                        objItem.Save
                    End If
            End If
        Next
      End If
      Set objItems = Nothing
      Set objItem = Nothing
      Set objFolder = Nothing
      Set objNS = Nothing
      Set objApp = Nothing
    End Sub

    image

  5. Pronto, o processo é super rápido e seus telefones já estarão ajustados. Agora é só sincronizar o celular com o Outlook para ter todos telefones dele corrigidos também!

Published segunda-feira, 30 de julho de 2012 14:57 by Paleo

Filed under:

Comments

# Adicionando o dígito 9 para quem usa o código da operadora@ quarta-feira, 1 de agosto de 2012 12:25

Ontem falando com um amigo, ele me disse que sempre armazenava os telefones com o código da operadora 

Tecnologias

# Adicionando o dígito 9 para quem usa o código da operadora@ quarta-feira, 1 de agosto de 2012 12:25

Ontem falando com um amigo, ele me disse que sempre armazenava os telefones com o código da operadora 

Carlos Fernando Paleo da Rocha
SBS MVP in Brazil

# re: Adicionando o dígito 9 aos números do prefixo 011@ terça-feira, 7 de agosto de 2012 15:39

Olá... Primeiro, muito obrigado pela iniciativa de seu post.

Com certeza isso ajudará muuuito!

Tive contudo um problema na execução do script.

Tenho o Outlook 2007.

Apliquei seu script (COM CÓDIGO DA OPERADORA) e aparece um passo a mais que aqui não aparece.

Quando clico no PLAY para aplicar o script, ele pede para selecionar uma pasta.

Eu seleciono a pasta CONTATOS.

Dai ele dá um erro, '438'.

Quando peço para depurar, aparece marcada a linha: "newTel = LTrim(RTrim(Replace(Replace(Replace(Replace(RTrim(objItem.MobileTelephoneNumber), "(", ""), ")", ""), "-", ""), " ", "")))"

E ele não completa o Script.

Alguma idéia?

Muito obrigado!

Dalton Eide

# re: Adicionando o dígito 9 aos números do prefixo 011@ terça-feira, 7 de agosto de 2012 16:33

Dalton,

isso é muito estranho, pois o erro 438 normalmente é "Object doesn't support this property or method" e a linha está correta, devendo funcionar perfeitamente no Outlook 2007.

Vou instalar um Outlook 2007 aqui para testar.

Paleo

# re: Adicionando o dígito 9 aos números do prefixo 011@ sábado, 11 de agosto de 2012 2:24

Dalton, tente alterar as primeiras linhas, colocando isto:

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

       If objItem.Class = olContact Then

           newTel = LTrim(RTrim(Replace(Replace(Replace(Replace(RTrim(objItem.MobileTelephoneNumber), "(", ""), ")", ""), "-", ""), " ", "")))

       End If

   Next

End If

Paleo

# re: Adicionando o dígito 9 aos números do prefixo 011@ quinta-feira, 16 de agosto de 2012 17:38

Paleo, tudo bom!

Tem como não add para os contatos já atualizados?

Abraço

Daniel

# re: Adicionando o dígito 9 aos números do prefixo 011@ sexta-feira, 17 de agosto de 2012 10:35

Oi Daniel, este outro post analisa esta questão: carlosfprocha.com/.../adicionando-o-d-237-gito-9-para-quem-usa-o-c-243-digo-da-operadora.aspx

Paleo

# re: Adicionando o dígito 9 aos números do prefixo 011@ quinta-feira, 23 de agosto de 2012 16:07

Favor deixarem uma forma de contato quando postarem comentários, pois se enviam códigos e há erros neles, não tenho como avisar e naturalmente não vou liberar a postagem deles com erros.

Paleo

Leave a Comment

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