Usuário com melhor resposta
Digito 9 para DDD11

Pergunta
-
Boa tarde, como devem saber, agora foi acrescentado o digito 9 em todas as linhas moveis com DDD11.
Alguem conhece alguma maneira de acrescentar esse digito aos contatos do outlook de forma automatizada?
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
Respostas
-
Sub Exemplo() Dim obj As Object Dim cti As ContactItem For Each obj In Session.GetDefaultFolder(olFolderContacts).Items If TypeName(obj) = "ContactItem" Then Set cti = obj cti.AssistantTelephoneNumber = Processar(cti.AssistantTelephoneNumber) cti.Business2TelephoneNumber = Processar(cti.Business2TelephoneNumber) cti.BusinessTelephoneNumber = Processar(cti.BusinessTelephoneNumber) cti.CallbackTelephoneNumber = Processar(cti.CallbackTelephoneNumber) cti.CarTelephoneNumber = Processar(cti.CarTelephoneNumber) cti.CompanyMainTelephoneNumber = Processar(cti.CompanyMainTelephoneNumber) cti.Home2TelephoneNumber = Processar(cti.Home2TelephoneNumber) cti.HomeTelephoneNumber = Processar(cti.HomeTelephoneNumber) cti.MobileTelephoneNumber = Processar(cti.MobileTelephoneNumber) cti.OtherTelephoneNumber = Processar(cti.OtherTelephoneNumber) cti.PrimaryTelephoneNumber = Processar(cti.PrimaryTelephoneNumber) cti.RadioTelephoneNumber = Processar(cti.RadioTelephoneNumber) cti.TTYTDDTelephoneNumber = Processar(cti.TTYTDDTelephoneNumber) cti.Save End If Next obj End Sub Private Function Processar(sNúmero As String) As String If sNúmero Like "([0-9][0-9]) [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" Then Processar = Mid(sNúmero, 1, 9) & "9" & Mid(sNúmero, 10) Else Processar = sNúmero End If End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Hezequias VasconcelosModerator terça-feira, 31 de julho de 2012 22:15
-
Alexandre,
aqui tem o código para isso: http://carlosfprocha.com/blogs/paleo/archive/2012/08/01/adicionando-o-d-237-gito-9-para-quem-usa-o-c-243-digo-da-operadora.aspx
Abraço, Carlos F. P. Rocha - Conheça http://www.carlosfprocha.com
- Sugerido como Resposta Carlos Fernando Paleo da Rocha quinta-feira, 13 de setembro de 2012 13:36
- Marcado como Resposta Hezequias VasconcelosModerator quinta-feira, 13 de setembro de 2012 14:11
-
hum, interessante, nao entendo muito de programacao, mas deu para entender oque faz.
um unico detalhe, é que existem diversas variaveis que devem ser consideradas, se o numero é ou nao de sao paulo, se é um numero de celular, se é da operadora vivo, tim, oi, claro, pois a nextel nao possui esse novo digito, entre alguns outros detalhes.
enquanto nao sai alguma atualizacao da microsoft, estou instruindo os usuarios a utilizar os softwares disponiveis na internet e fazer as alterações pelos telefones, e depois sincronizar com o outlook.
Mas o ideal seria se fosse possivel fazer essa alteracao em massa nos contatos dos usuarios.
grato pela ajuda
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
- Marcado como Resposta Hezequias VasconcelosModerator terça-feira, 31 de julho de 2012 22:15
Todas as Respostas
-
-
Hezequias, nao sei se voce é sao paulo,
mas agora, em sao paulo todos os telefones celulares possuem 9 digitos e nao 8, e sao identificados pelo digito 9. se meu numero era.
(11) 1234-5678 agora ele virou (11) 91234-5678.
Oque eu gostaria, era de alguma forma, acrescentar o digito 9 na frente de todos os numeros, apos o codigo de area.
para ios e android, ja sairam diversos aplicativos, porem nao vi nenhum para agenda de contatos do outlook
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
-
Olá Alexandre, boa tarde.
Veja duas formas de resolver a sua dificuldade.
1 - Na forma nativa do programa esta alteração ainda não existe, mas acredito que já esteja no roadmap da Microsoft o seu desenvolvimento assim você pode aguardar a liberação desse pack.
2 - A única forma que vejo no momento que você pode aplicar é o de desenvolver um formulário manualmente que contemple essa alteração.
Espero ter ajudado.
Hezequias Vasconcelos
-
Sub Exemplo() Dim obj As Object Dim cti As ContactItem For Each obj In Session.GetDefaultFolder(olFolderContacts).Items If TypeName(obj) = "ContactItem" Then Set cti = obj cti.AssistantTelephoneNumber = Processar(cti.AssistantTelephoneNumber) cti.Business2TelephoneNumber = Processar(cti.Business2TelephoneNumber) cti.BusinessTelephoneNumber = Processar(cti.BusinessTelephoneNumber) cti.CallbackTelephoneNumber = Processar(cti.CallbackTelephoneNumber) cti.CarTelephoneNumber = Processar(cti.CarTelephoneNumber) cti.CompanyMainTelephoneNumber = Processar(cti.CompanyMainTelephoneNumber) cti.Home2TelephoneNumber = Processar(cti.Home2TelephoneNumber) cti.HomeTelephoneNumber = Processar(cti.HomeTelephoneNumber) cti.MobileTelephoneNumber = Processar(cti.MobileTelephoneNumber) cti.OtherTelephoneNumber = Processar(cti.OtherTelephoneNumber) cti.PrimaryTelephoneNumber = Processar(cti.PrimaryTelephoneNumber) cti.RadioTelephoneNumber = Processar(cti.RadioTelephoneNumber) cti.TTYTDDTelephoneNumber = Processar(cti.TTYTDDTelephoneNumber) cti.Save End If Next obj End Sub Private Function Processar(sNúmero As String) As String If sNúmero Like "([0-9][0-9]) [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" Then Processar = Mid(sNúmero, 1, 9) & "9" & Mid(sNúmero, 10) Else Processar = sNúmero End If End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Hezequias VasconcelosModerator terça-feira, 31 de julho de 2012 22:15
-
hum, interessante, nao entendo muito de programacao, mas deu para entender oque faz.
um unico detalhe, é que existem diversas variaveis que devem ser consideradas, se o numero é ou nao de sao paulo, se é um numero de celular, se é da operadora vivo, tim, oi, claro, pois a nextel nao possui esse novo digito, entre alguns outros detalhes.
enquanto nao sai alguma atualizacao da microsoft, estou instruindo os usuarios a utilizar os softwares disponiveis na internet e fazer as alterações pelos telefones, e depois sincronizar com o outlook.
Mas o ideal seria se fosse possivel fazer essa alteracao em massa nos contatos dos usuarios.
grato pela ajuda
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
- Marcado como Resposta Hezequias VasconcelosModerator terça-feira, 31 de julho de 2012 22:15
-
Olá Alexandre, boa noite.
Realmente da forma que descreve a melhor solução é aguardar a futura atualização que será distribuida pela Microsoft.
Agradeço ao Benzadeus pelo código desenvolvido para esta solução, com certeza ajudará a muitos usuários.
Desculpe não poder ajudar mais.
Hezequias Vasconcelos
- Editado Hezequias VasconcelosModerator terça-feira, 31 de julho de 2012 22:14
-
Bom, um codigo que me foi passado, se nao me engano foi desenvolvido por alguem de windows phone (Mário Abreu)
nao testei, mas aparenta fazer as verificações necessarias.
Sub ResolveOperadora() Dim oFolder As MAPIFolder Set oFolder = Application.ActiveExplorer.CurrentFolder If Left(UCase(oFolder.DefaultMessageClass), 11) <> "IPM.CONTACT" Then MsgBox "Selecione pasta de contatos", vbExclamation Exit Sub End If Dim Contador As Integer Dim Operadora As String Dim Area As String Contador = 0 pedeOperadora: Operadora = InputBox(Prompt:="Digite o codigo de sua operadora de longa distancia:", _ Title:="Digite sua operadora:", Default:="00") testaOperadora: If Operadora = vbNullString Then Exit Sub If Operadora = "00" Or _ Operadora = "" Then Operadora = InputBox(Prompt:="Digite Algum valor:", _ Title:="Digite sua operadora:", Default:="00") GoTo testaOperadora Else If (Len(Operadora) > 2) Or _ (Len(Operadora) < 2) Or _ IsNumeric(Operadora) = False Then MsgBox "Operadora deve ser dois digitos númericos!", vbError GoTo pedeOperadora End If End If pedeArea: Area = InputBox(Prompt:="Digite o codigo de area de sua cidade:", _ Title:="Digite seu codigo de Area:", Default:="00") testaArea: If Area = vbNullString Then Exit Sub If Area = "00" Or _ Area = "" Then Area = InputBox(Prompt:="Digite Algum valor:", _ Title:="Digite seu codigo de Area:", Default:="00") GoTo testaArea Else If (Len(Area) > 2) Or _ (Len(Area) < 2) Or _ IsNumeric(Area) = False Then MsgBox "Codigo de Area deve ser dois digitos númericos!", vbError GoTo pedeArea End If End If On Error GoTo handle MsgBox "Ao clicar em OK o Processo de alteraçao comecará. Seu Outlook Permanecerá em um estado " & _ "não responsivo até o termino onde uma mensagem informará o numero de contatos processados.", vbInformation Dim oItem For Each oItem In oFolder.Items Dim oContact As ContactItem Set oContact = oItem If Not oContact Is Nothing Then With oContact .AssistantTelephoneNumber = CorrigeNumeros(.AssistantTelephoneNumber, Operadora, Area) .Business2TelephoneNumber = CorrigeNumeros(.Business2TelephoneNumber, Operadora, Area) .BusinessFaxNumber = CorrigeNumeros(.BusinessFaxNumber, Operadora, Area) .BusinessTelephoneNumber = CorrigeNumeros(.BusinessTelephoneNumber, Operadora, Area) .CallbackTelephoneNumber = CorrigeNumeros(.CallbackTelephoneNumber, Operadora, Area) .CarTelephoneNumber = CorrigeNumeros(.CarTelephoneNumber, Operadora, Area) .CompanyMainTelephoneNumber = CorrigeNumeros(.CompanyMainTelephoneNumber, Operadora, Area) .Home2TelephoneNumber = CorrigeNumeros(.Home2TelephoneNumber, Operadora, Area) .HomeFaxNumber = CorrigeNumeros(.HomeFaxNumber, Operadora, Area) .HomeTelephoneNumber = CorrigeNumeros(.HomeTelephoneNumber, Operadora, Area) .ISDNNumber = CorrigeNumeros(.ISDNNumber, Operadora, Area) .MobileTelephoneNumber = CorrigeNumeros(.MobileTelephoneNumber, Operadora, Area) .OtherFaxNumber = CorrigeNumeros(.OtherFaxNumber, Operadora, Area) .OtherTelephoneNumber = CorrigeNumeros(.OtherTelephoneNumber, Operadora, Area) .PagerNumber = CorrigeNumeros(.PagerNumber, Operadora, Area) .PrimaryTelephoneNumber = CorrigeNumeros(.PrimaryTelephoneNumber, Operadora, Area) .RadioTelephoneNumber = CorrigeNumeros(.RadioTelephoneNumber, Operadora, Area) .TelexNumber = CorrigeNumeros(.TelexNumber, Operadora, Area) .TTYTDDTelephoneNumber = CorrigeNumeros(.TTYTDDTelephoneNumber, Operadora, Area) .Save Contador = Contador + 1 End With End If nextItem: Next MsgBox Contador & " contatos processados.", vbInformation Exit Sub handle: Resume nextItem End Sub Public Function CorrigeNumeros(strNumero As String, strOperadora As String, strArea As String) As String Dim Corrigido As String Dim Ramal As String Dim ValidaRamal As Integer Corrigido = "" Ramal = "" strNumero = Trim(strNumero) CorrigeNumeros = strNumero If strNumero = "" Then Exit Function strNumero = Replace(strNumero, " ", "") strNumero = Replace(strNumero, "(", "") strNumero = Replace(strNumero, ")", "") strNumero = Replace(strNumero, ".", "") strNumero = Replace(strNumero, ",", "") strNumero = Replace(strNumero, "-", "") ValidaRamal = InStr(strNumero, "X") If Not IsNull(ValidaRamal) Then If ValidaRamal > 0 Then Ramal = Mid(strNumero, ValidaRamal) strNumero = Left(strNumero, ValidaRamal - 1) End If End If If Left(strNumero, 1) = "+" Then 'Testa se formato E.163 If Left(strNumero, 3) = "+55" Then 'Testa se for do Brasil If Right(Left(strNumero, 5), 2) = "11" Then If Right(Left(strNumero, 6), 1) = "6" Or Right(Left(strNumero, 6), 1) = "7" Or Right(Left(strNumero, 6), 1) = "8" Or Right(Left(strNumero, 6), 1) = "9" Then Corrigido = "0" & strOperadora & "119" & Mid(strNumero, 6) 'Corrige com um 9 extra para Sao Paulo Else Corrigido = "0" & strOperadora & Mid(strNumero, 4) End If Else Corrigido = "0" & strOperadora & Mid(strNumero, 4) End If Corrigido = "0" & strOperadora & Mid(strNumero, 4) Else Corrigido = "00" & strOperadora & Mid(strNumero, 2) End If ElseIf Left(strNumero, 2) = "00" Then 'Testa se padrão internacional Corrigido = "00" & strOperadora & Mid(strNumero, 5) ElseIf Len(strNumero) = 10 Then 'Testa se for americano sem digitos e corrige a discagem Corrigido = "00" & strOperadora & "1" & strNumero ElseIf Len(strNumero) = 8 Then 'Testa se for local com 8 digitos If strArea = "11" Then If Left(strNumero, 1) = "6" Or Left(strNumero, 1) = "7" Or Left(strNumero, 1) = "8" Or Left(strNumero, 1) = "9" Then Corrigido = "0" & strOperadora & strArea & "9" & strNumero 'Corrige com um 9 extra para Sao Paulo Else Corrigido = "0" & strOperadora & strArea & strNumero End If Else Corrigido = "0" & strOperadora & strArea & strNumero End If ElseIf Len(strNumero) = 9 Then 'Testa se for local com 9 digitos If strArea = "11" Then If Left(strNumero, 1) = "6" Or Left(strNumero, 1) = "7" Or Left(strNumero, 1) = "8" Or Left(strNumero, 1) = "9" Then Corrigido = "0" & strOperadora & strArea & "9" & strNumero 'Corrige com um 9 extra para Sao Paulo Else Corrigido = "0" & strOperadora & strArea & strNumero End If Else Corrigido = "0" & strOperadora & strArea & strNumero End If ElseIf Len(strNumero) = 13 Then 'Testa se esta no formato operadora If Right(Left(strNumero, 5), 2) = "11" Then If Right(Left(strNumero, 6), 1) = "6" Or Right(Left(strNumero, 6), 1) = "7" Or Right(Left(strNumero, 6), 1) = "8" Or Right(Left(strNumero, 6), 1) = "9" Then Corrigido = "0" & strOperadora & "119" & Mid(strNumero, 6) 'Corrige com um 9 extra para Sao Paulo Else Corrigido = "0" & strOperadora & Mid(strNumero, 4) End If Else Corrigido = "0" & strOperadora & Mid(strNumero, 4) End If ElseIf Len(strNumero) = 14 Then 'Testa se esta no formato operadora If Right(Left(strNumero, 5), 2) = "11" Then Corrigido = "0" & strOperadora & Mid(strNumero, 4) End If ElseIf Left(strNumero, 4) = "55" & strArea Then ' Corrige contatos sem + do Brasil Corrigido = "0" & strOperadora & Mid(strNumero, 3) Else Corrigido = strNumero End If If Corrigido = "" Then Exit Function If Not IsNull(ValidaRamal) Then If ValidaRamal > 0 Then CorrigeNumeros = Corrigido & Ramal Else CorrigeNumeros = Corrigido End If Else CorrigeNumeros = Corrigido End If End Function Public Function IsNumericOnly(TestString As String) As Boolean Dim sTemp As String Dim iLen As Integer Dim iCtr As Integer Dim sChar As String 'returns true if all characters in string are numeric 'returns false otherwise or for empty string 'this is different than VB's isNumeric 'isNumeric returns true for something like 90.09 'This function will return false sTemp = TestString iLen = Len(sTemp) If iLen > 0 Then For iCtr = 1 To iLen sChar = Mid(sTemp, iCtr, 1) If Not sChar Like "[0-9]" Then Exit Function Next IsNumericOnly = True End If End Function
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
-
Testou o código que fiz? As duas únicas linhas que você talvez precise alterar são:
If sNúmero Like "([0-9][0-9]) [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" Then Processar = Mid(sNúmero, 1, 9) & "9" & Mid(sNúmero, 10)
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Benzadeus
nao cheguei a testar, mas pelo codigo, me corrija se eu estiver errado, ele vai adicionar o numero 9 para todos os numeros correto?
Porem, nao sao todos os numeros que devem ser alterados.
mesmo com o codigo que eu postei. que faz diversas verificações, ainda existem numeros sendo alterados indevidamente.
numeros de telefone que se iniciam com 77 e 78 nao devem ter o 9 acrescentado.
assim como alguns numeros iniciados com 5.
existem ainda algumas consideracoes, nao é todo mundo que tem os numeros no formato (DD) xxx-xxxx
muitas vezes o usuario poe somente o numero e sem DDD, as vezes ele mesmo coloca 5511xxxx-xxxx
resumindo, existem muitas "tratativas" que devem ser realizadas.
fico grato pelo codigo gerado, mas ele nao atende em 100%.
Foi util? Classifique ^^ MCP - MCDST - MCTS - MCSA - MCITP www.nrv.com.br www.alexandrenakagawa.com.br
-
Sim, concordo. Meu código atende apenas para números da forma (XXX) XXXX-XXXX. Eu não sabia dessa questão do 77 e 78. Tem pessoas também que não gravam o número da forma adequada, muitas vezes até suprimindo hífens e parânteses.
No entanto, está bastante simples adaptar meu código para suas necessidades. Eu sugeriria o uso de uma cláusa Select Case na função Processar. Vi quais são as regras, que são chatas, mas fáceis de implementar.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Olá Alexandre,
A Mondial Tecnologia está disponibilizando um aplicativo para fazer estas atualizações.
O download pode ser feito gratuitamente atavés do link: www.mondial.com.br/digit9
Abraços.
-
Alexandre,
aqui tem o código para isso: http://carlosfprocha.com/blogs/paleo/archive/2012/08/01/adicionando-o-d-237-gito-9-para-quem-usa-o-c-243-digo-da-operadora.aspx
Abraço, Carlos F. P. Rocha - Conheça http://www.carlosfprocha.com
- Sugerido como Resposta Carlos Fernando Paleo da Rocha quinta-feira, 13 de setembro de 2012 13:36
- Marcado como Resposta Hezequias VasconcelosModerator quinta-feira, 13 de setembro de 2012 14:11