Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Mostrando postagens com marcador Tips. Mostrar todas as postagens
Mostrando postagens com marcador Tips. Mostrar todas as postagens

Excel Tips - Calendário Compacto para 2014 - THE COMPACT CALENDAR 2014



Continua o nosso desafio quanto a manter o controle sobre os diversos projetos e atividades nas quais estamos envolvidos! 

Acompanharmos as diversas fases em vários cronogramas exige disciplina e assertividade. Ter uma boa ferramenta de apoio, pode ser a diferença entre atingir os nossos objetivos ou despercebermos que deveríamos ter feito isso.

O que se segue é uma versão traduzida do Calendário Compacto para 2013, desenvolvido por David Seah.

Este calendário tem uma apresentação compacta, dividida em semanas, com linhas numeradas numa planilha Excel. Usá-lo nos ajudará a avaliarmos melhor a duração dos eventos previstos nas semanas do ano.

Esta versão do calendário é ideal para os projetos onde se planeja controlar as várias fases da implementação. Sua impressão está posicionada na margem esquerda de uma folha A4, proporcionando muito espaço para comentários e anotações.


Este Calendário Compacto é um Calendário de Planejamento muito versátil, fácil de personalizar e imprimir a partir do Microsoft Excel
12-month calendar in Excel 2007To add a holiday, just type in the date in the first column and a note in the second. The rest of this is for fancy formatting.The instructions worksheet reminds you how to modify things








Por padrão, o calendário inclui os feriados americanos destacados em vermelho, mas podemos inserir outros eventos.

Solicite uma versão 

Deixe um comentário junto com o seu endereço de e-mail neste POST(Acesse ao link do post, pois este artigo está sendo replicado em vários blogs)

Calendário Compacto é simples de imprimir. Encaixa-se em uma única página, as semanas são apresentadas como uma pilha de tempo disponível, torna-se fácil bloquear os dias, fazendo anotações sobre reuniões, feriados e fins de semana.

Modificando o Calendário Compacto

Precisará ter no mínimo o Microsoft Excel 2007 ou versão posterior para modificar os arquivos xltx do Calendário Compacto. Se estiver usando uma versão anterior do Office no Windows, utilize este service pack para download a partir do site da Microsoft.

NOTA: O Calendário Compacto está salvo como um modelo do Excel (xltx). Se clicar duas vezes em um arquivo de modelo do Excel, ele abre uma cópia que salvará sem modificar o modelo mestre. Se quiser editar o modelo em si, deve abrí-lo como um modelo do MS Excel.

Por favor, note que é necessário o Microsoft Excel 2007 ou versão mais recente .Outros softwares como o Open OfficeGoogle Docs, e outros podem importar a planilha Excel, mas devido as diferenças na maneira de lidar com as datas faz-se necessário certificar-se de que os calendários estarão corretos.
Tags: 2014, Excel, tips, calendário, calendar, download, David Seah, xltx, Office, MS Office, 




Inline image 1

VBA Excel - Google Books API - Como obter dados de uma lista de livros com ISBN no Excel






















O título deste post poderia ser 'Getting data about a book using the ISBN number', mas achei melhor o título somente em português:

Google Books API - Como obter dados de uma lista de livros com ISBN no Excel

Acho que exprimirá melhor a intenção do conteúdo abaixo. Desenvolvi este conteúdo, não tanto pela utilidade prática em si, a qual não é totalmente inútil, uma vez que podemos consultar uma ampla lista de títulos de livros de uma planilha Excel, por exemplo, num dos maiores repositórios de dados sobre livros no mundo.

Minha verdadeira intenção é a de estimular a constante interação com dados oriundos da Web, neste caso a interação com a excelente API do Google Books.

É desnecessário dizer que esse código poderia ser implementado em qualquer produto da suíte MS Office, ou fora dela, que processe um código VBA.

Google Book API

Olharemos para a forma como  a API do Google Books responde a um pedido detalhado a partir do respectivo número ISBN de um livro. Usando esses dados, completaremos as colunas da nossa planilha. 

O Google oferece uma API rica e subutilizada. Neste exemplo vamos usar uma pequena parte dela para resolver um problema específico que os bibliotecários muitas vezes têm:

Como obter dados de uma lista de livros com ISBN no Excel?

Implementando o código no Excel

Digamos que precisemos completar uma tabela de números de ISBN, preenchendo várias outras colunas com atributos a partir deste número. 

A tabela completa será similar a esta:


O nosso código buscará uma coluna com o título ISBN que será usado como o pedido de livros à biblioteca do Google. Quaisquer outras colunas que correspondam aos nomes de campos retornados pelo Google serão preenchidas. Nos casos em que existam potencialmente vários valores (por exemplo, autores), serão separados por vírgulas. Todas as colunas cujas as posições não correspondam aos campos retornados pelo Google Books serão ignorados e o seu conteúdo ficará intacto.

Onde obter o código

Criaremos um módulo chamado 'isbnExample' na planilha.

Resumo dos dados

O primeiro passo  é fazer com que a tabela de entrada / saída seja abstraída da sua posição física usando classes de manipulação de dados. Em seguida, verificamos se há a coluna ISBN, processamos a tabela contra a API do Google Books, e, finalmente, atualizamos a planilha.

Public Sub isbnExample()
    Dim dSet As cDataSet
    
    Set dSet = New cDataSet
    
    With dSet
        ' criar um conjunto de dados (recordset) na planilha ISBN
        .populateData wholeSheet("isbn"), , "isbn", , , , True

        If .where Is Nothing Then
            MsgBox ("Nenhuma informação para processar...")
        Else
            'verifique temos a coluna ISBN presente
            If .headingRow.validate(True, cISBNColumnHeading) Then
                ' se não houvesse nenhuma atualização então executa o commit
                If processISBN(dSet) > 0 Then
                    .bigCommit
                End If
                
            End If
        End If
    End With
    
    Set dSet = Nothing
End Sub

Obtendo respostas da API do Google Books

Cada linha da planilhas será passada para a API com uma consulta ao número ISBN, e retornará uma string de tudo o que o Google encontrar sobre o livro.

Private Function processISBN(ds As cDataSet) As Long
    Dim dSet As cDataSet, cb As cBrowser, dr As cDataRow
    Dim jo As cJobject, job As cJobject, n As Long
    Dim sWire As String
    
    ' Recebe detalhes dum livro pelo número de ISBN.
    Set cb = New cBrowser
    Set jo = New cJobject
    
    Let n = 0
    
    For Each dr In ds.rows
        With dr.cell(cISBNColumnHeading)
            Let sWire = cb.httpGET(cISBNGoogleBooks & .toString)
            
            Set job = jo.deSerialize(sWire)
            
            If Not job.isValid Then
                MsgBox ("Código ISBN incorreto! " & .toString & "-" _
                    & sWire)
            
            ElseIf Not job.childExists("error") Is Nothing Then
            
                MsgBox ("O Google Books recusa-se operar com este ISBN " _
                        & .toString _
                        & "-" & job.child("error").serialize)
                
            ElseIf job.childExists("Items") Is Nothing _
                Or job.childExists("totalItems") Is Nothing Then
                
                MsgBox ("Não foi encontrado nenhuma informação para este ISBN " _
                        & .toString _
                        & "-" & job.serialize)
            
            ElseIf job.child("totalItems").value <> 1 Then
            
                MsgBox ("Múltiplas entradas para " _
                        & .toString _
                        & "-" & job.child("totalItems").serialize)
            
            Else
                ' Preenche a linha.
                Let n = n + rowProcess(dr, job.child("Items"))
            End If
        End With
    Next dr
    
    Let processISBN = n
End Function

Preenchendo as colunas com os dados retornados

Para cada linha que havíamos executado uma consulta, verificaremos se há qualquer nome de coluna correspondente aos nomes dos campos de resposta da consulta, e os preencheremos, então lidaremos com as várias colunas, separando-as nos vários valores por vírgulas.

Private Function rowProcess(dr As cDataRow, job As cJobject) As Long
    Dim hc As cCell, n As Long, jo As cJobject, jom As cJobject
    
    Let n = 0
    
    For Each hc In dr.parent.headings
        ' Quaisquer títulos que estiverem presentes no conjunto de dados retornados
        ' no json serão preenchidos.
        
        With hc
            If .toString <> cISBNColumnHeading Then
                Set jo = job.find(.toString)
                
                If Not jo Is Nothing Then
                    With dr.cell(.column)
                        ' Se forem múltiplas, inclue na matriz (array) separados por vírgulas
                        If jo.isArrayRoot Then
                            Let .value = vbNullString
                            
                            If jo.hasChildren Then
                                For Each jom In jo.children
                                    If .toString <> vbNullString Then
                                        Let .value = .value & ","
                                    End If
                                    
                                    Let .value = .value & jom.toString
                                Next jom
                            End If
                        Else
                            Let .value = jo.value
                        End If
                    End With
                    
                    Let n = n + 1
                End If
            End If
        End With
    Next hc
    
    Let rowProcess = n
End Function

Lembre-se que estamos apenas arranhando a superfície desta excelente API. Você poderia facilmente usar outros recursos para criar todos os tipos de consultas sofisticadas a partir do ISBN

Como sempre estou ansioso para o seu feedback, comentários e perguntas.

O que é ISBN?

International Standard Book Number, mais conhecido pela sua sigla ISBN, é o Número Padrão Internacional de Livro: um sistema identificador único para livros e publicações não periódicas. Foi criado no Reino Unido, em 1967, pela livraria W H Smith, sendo chamado inicialmente de "Standard Book Numbering" (SBN). Desde então, passou a ser amplamente empregado tanto pelos comerciantes de livros quanto pelas bibliotecas, até que, em 1972, a International Organization for Standardization transformou-o em uma norma padrão internacional: a ISO 2108.



Emissão de ISBN

A emissão dos números ISBN é específico de cada país e é adaptado aos objetivos nacionais de cada um. No Canadá, a emissão de ISBN é efetuada sem custos, tendo como objetivo estimular a cultura. No Reino Unido e Estados Unidos, a emissão do ISBN tornou-se um centro de lucro para as empresas responsáveis. Editores e autores devem portanto obter os números ISBN da agência nacional de cada pais. Uma lista de agências ISBN está disponível no site da International ISBN Agency.

Outros acrônimos conhecidos:

ASIN (Amazon Standard Identification Number)
CODEN (Publicações periódicas; substituído pelo ISSN para publicações atuais)
DOI (Digital Object Identifier)
ESTC (English Short Title Catalogue)
ETTN (Electronic Textbook Track Number)
ISAN (International Standard Audiovisual Number)
ISMN (International Standard Music Number)
ISWC (International Standard Musical Work Code)
ISRC (International Standard Recording Code)
ISSN (International Standard Serial Number)
ISWN (International Standard Wine Number)
LCCN (Library of Congress Control Number)
OCLC (Online Computer Library Center number)
SICI (Serial Item and Contribution Identifier)

Tags: W H Smith, Tips, Google, API, Excel, VBA, Google Books, ISBN




Tips - Business English - Termos em inglês do mundo dos negócios - Speaking the lingo













Tópicos relacionados:

Para quem não é falante nativo de inglês, o idioma pode ser desafiador. Muitas referências não fazem sentido quando são traduzidas ao pé da letra. Quantos jargões de inglês para negócios costuma ouvir? Quantos conhece?

Bem, isso acontece desde a antiguidade: A potência mundial economicamente dominante tem o seu modelo de gestão copiado em todo o mundo, além de automaticamente impor-se no comércio, idioma, cultura, arquitetura, etc... Por isso o inglês é a língua predominante hoje em dia. Natural da Inglaterra, levado para os Estados Unidos, falado em dezenas de outros países, o idioma da potência mundial dupla requer a nossa atenção.

Quais desenvolvedores, com vivência no mundo corporativo, saber ler e falar inglês com fluência não é o suficiente. Precisamos conhecer os termos apropriados usados nas reuniões, conferências, conversas formais e de corredores. 

Como profissional, você deve dominar o inglês para negócios - ou Business English - para ter sucesso. Tratar de negócios em outro idioma pode ser difícil. Ninguém quer ficar de fora de uma reunião importante, perder uma promoção ou ser excluído das negociações por não falar bem inglês.

Como bons desenvolvedores que somos, sempre participamos desta ou daquela reunião ou estamos em conversas com diretores, gestores e poderemos olha para a lista abaixo e talvez decorar algumas palavras e expressões:

Account – Conta.

Advertising – Propaganda.

Agreement – Acordo.

All hands to the deck - É preciso que todos trabalhem ou ajudem em determinado projeto.

Balance sheet – Balanço.

Ball-park figure - Uma estimativa .

Bandwidth - Recurso e tempo.

Bargain – Negociação.

Bid – Oferta.

Bite off more than you can chew - Se você pega muito trabalho para fazer, talvez não consiga fazer tudo apropriadamente. "He's working late every night. He bit off more than he could chew."

Board of directors – Diretoria.

Bobble heading - Dizer que você entendeu, quando não entendeu.

Budget – Orçamento.

Business – Negócio.

Buying-in – Compra.

Brainstorm – Fluxo de idéias, reunião - Isso quer dizer passar mais tempo pensando em muitas idéias. Muitas companhias fazem brainstorming sessions para enfrentar problemas e imaginar novas idéias. "Let's brainstorm new ideas for the advertising campaign."

Cash-flow – Fluxo de caixa.

Chairman – Presidente.

Collateral – Garantia.

Commodity – Mercadoria.

Company – Empresa.

Consumer – Consumidor.

Deal – Negócio.

Development – Desenvolvimento.

Downtime - Existem épocas em que não há muito trabalho a ser feito, certo? Quando seu trabalho simplesmente não dá trabalho. Esse período é chamado de downtime. "If you have some downtime this week, please brainstorm some ideas for our next team outing."

Drill-down - Entrar em detalhes.

Elevator pitch - O termo, que significa o tempo da subida ou descida do elevador, é uma metáfora que sugere abordagem de vendas no elevador, pois considera que aquelas pequenas conversas dentro do elevador podem ser aproveitadas para divulgar o negócio. Trata-se de uma apresentação rápida do negócio que se deve ter na ponta da língua.

Empowerment - Delegação de autonomia para a tomada de decisões pelos funcionários, resultado do compartilhamento de informações fundamentais sobre o negócio e seus projetos. Fundamental para libertar a empresa da centralização das decisões, que a torna lenta e burocrática.

Employee – Empregado.

Equity – Participação acionária.

Factoring – Desconto de títulos.

Feedback – Retorno.

Freight – Frete.

Future-proof - Um produto que, em tese, nunca vai ficar obsoleto.

Get the ball rolling - Isto quer dizer começar alguma coisa e fazê-la ir para frente. "Let's get the ball rolling on this project." Quando você teve um grande início, você pode expressar seu desejo de keep the ball rolling.

Go live - Quando um produto ou sistema se torna disponível ao público. Um exemplo: When is the go live date? (Quando é a data de lançamento?, em tradução livre).


Going forward - De agora em diante, no futuro.


Good morning/afternoon/evening - Para cumprimentar um amigo, você pode dizer, "Hi! How are you?" No mundo dos negócios, no entanto, é mais apropriado cumprimentar alguém dizendo, "Good morning/Good afternoon/Good evening." Inclua o último nome também: "Good morning, Mr. Bernardes."

Helicopter view - O termo é usado para se referir a uma visão geral do negócio, sem muito aprofundamento.

How may I help you? - Não importa em que campo você atua, muito do seu trabalho provavelmente envolve lidar com pedidos ou dar assistência. Então quando alguém ligar ou vier até você pedindo ajuda, seja um cliente ou seu chefe, sorria e diga, "How may I help you?" ou "What can I do for you?" Cuidado para não dizer simplesmente "What do you want?" Essa frase costuma sair rude, especialmente se dita com a entonação errada (um tom decrescente no final da frase faz ela soar indelicada).

I don´t have any bandwidth on this one - não tenho mais capacidade mental ou física para continuar trabalhando.

I'm sorry/I will - Quando alguém comete um erro, ninguém gosta de ouvir desculpas. Então primeiro se desculpe, e depois faça alguma coisa. Se você não puder responder alguma pergunta ou não puder atender a um pedido, comece com, "I'm sorry …" É a melhor maneira de desarmar um conflito antes de começar. Por exemplo, se você não souber uma resposta, diga, "I'm sorry, I don't know the answer." Mas não pare aí! Continue com o que você vai fazer a respeito: "But I will find out." "I'm sorry" dá a entender que você se importa com o problema, e "I will" assegura que você vai ajudar.


Income – Renda.

In my opinion/I'm afraid I don't agree - Nos negócios, quando estiver discutindo uma nova idéia ou projeto, você precisa de modos educados para afirmar seus pensamentos ou mostrar que você não concorda. Usando a frase "In my opinion …" no início da frase mostra ao ouvinte que você está aberto a outros pontos de vista. Se você não concorda com alguém, não diga "That's the dumbest idea I've ever heard!" ao invés use, "I'm afraid I don't agree." Escolher suas palavras com cuidado fará a pessoa com que você está trabalhando muito mais disposta a te escutar!

Interest (money) – Juros (dinheiro).

Joined-up thinking - Ponto de vista mais amplo, que ultrapassa o foco limitado.

Know-how – Conhecimento.

Leader – Líder.

Mission-critical - Crítico para o bom andamento e o sucesso do projeto.

Multi-tasking - Você é bom em multi-tasking ou realizar muitas tarefas ao mesmo tempo? "This week we need you to write a report, make a presentation, and review last year's earnings. I hope you can multi-task!

On the ball - Esta frase vem da área de esportes. Quando você está on the ball, deve ficar pronto e alerta. "Make sure you are on the ball with those reports." O oposto é drop the ball, que significa não completar uma tarefa e decepcionar pessoas as pessoas com quem você trabalha.

Organic growth - É a expansão de um negócio obtida pelo aumento das vendas, em oposição a operações de concentração como fusões e aquisições. Tipicamente, o crescimento orgânico também exclui o impacto de alterações cambiais.

OTT - Over The Top - Exagero.

Pull strings - O que acontece quando você mexe os cordões de uma marionete? Ela faz o que você quiser que ela faça. Essa frase quer dizer ir além do que é feito normalmente para fazer alguma coisa acontecer. "It will be difficult to talk with her. You may have to pull some strings with her department."

Parachute in - Mandar alguém fazer/terminar uma tarefa ou resolver um problema fora do escritório.

Pass the monkey - Passar a responsabilidade por um problema para alguém .

Pushing the envelope - Ir até o limite.

Ramp-up - Aumentar com o tempo.

Receipt – Recibo.

Resources – Recursos.

Salary – Salário.

Sale – Venda.

Saving – Poupança.

Share – Ação.

Singing from the same hymn sheet - Expressando as mesmas opiniões em público.

Soup to nuts - Do início ao fim, "de cabo a rabo". O termo é muito usado, por exemplo, quando se refere a um plano de negócios com uma abordagem bem completa (a business plan soup to nuts).


Speaking the lingo - Falar o jargão (lingo é jargão).


Stir fry an idea in your think wok - Contar uma das minhas ideias a você.


Stock exchange – Bolsa de valores.

Stockholder – Acionista.

Supplier – Fornecedor.

Supply and demand – Oferta e procura.


Talk the talk, walk the walk - Falar em teoria e pôr em prática o mesmo; ou seja, fazer o que você diz que pode.

The elephant in the room - Uma verdade óbvia que está sendo ignorada.


Think outside the box - Muitos gestores esperam que a equipe seja criativa e veja os projetos de maneiras novas e diferentes. Nessa frase, the box significa a sabedoria convencional ou o que já é sabido por todos. Pensar fora da caixa sugere pensar em métodos diferentes e inovadores. "For this marketing project, we need to think outside the box."

Retrenchment - O termo é usado quando há uma redução da estrutura organizacional de uma empresa com objetivo de salvar ativos financeiros ou quando vai haver uma redução dos gastos, a fim de a organização tornar-se financeiramente estável.


Would you mind?/Could you?/I'd appreciate - Ao menos que você seja o top dog (o chefe), você não quer soar como se estivesse dando ordens. Fazer pedidos em forma de perguntas é muito melhor que fazê-los de forma declarada. "Would you mind looking at this report?" ou "Could you take a look at his?" é mais apropriado que, "Look at this report." Quando você faz pedidos educadamente seus colegas o ajudarão com mais prazer!

Working capital – Capital de giro.

Precisamos ter algumas vantagens nesse mundo competitivo. Um inglês impecável pode colocá-lo na frente da competição. Acha muito difícil? Confira a lista dos erros mais comuns em inglês e saia na frente:

Personal vs. Personnel
Preste bastante atenção na soletragem e contração dessas palavras! "Personnel" é um substantivo que significa os empregados de uma companhia. E.x. "Our company has the best personnel in the industry." A contração é colocada no final da palavra. "Personal" é um adjetivo que quer dizer privado ou individual. "I'm requesting a day of annual leave for personal reasons." A contração é colocada no início. Se não formos cuidadosos, podemos convocar "personal meeting" ao invés de uma "personnel meeting".

Executive
Um "executive" é alguém na gerência da companhia. Se você estiver apresentando os melhores executives da sua companhia a visitantes ou clientes, cuidado com sua pronúncia! Se você contrair o "u", então "executive" parece soar como "execute" - ou seja, matar alguém.

Present? Presentate? Presentation?
Você present uma informação quando você faz uma presentation. Present é um verbo que significa apresentar alguma coisa ou alguém. Uma presentation é um formato muito usado em negócios para apresentar uma informação nova. Muitas pessoas - até mesmo algumas nativas em Inglês - acham que "presentate" é a forma verbal de "presentation." Não cometa o mesmo erro!

"I look forward to hearing from you."
Esta frase é comumente usada para terminar cartas de negócios. Mas aprendizes de Inglês frequentemente escrevem "I look forward to hear from you." Isto não está certo e soa engraçado para falantes de Inglês nativos. O verbo "hear" sempre tem de ter o "ing" nesta frase.

Headquarters and Information
Muitos aprendizes de Inglês tiram o "s" de "headquarters" e colocam um "s" em "information". Ambos estão errados. Headquarters é um substantivo no singular e significa o escritório principal de uma companhia: "I'm going to headquarters this weekend to meet with the CEO". Headquarters é confuso por que termina com um "s". Parece um substantivo no plural! Mas tirar o "s" transforma headquarters em um verbo, "to headquarter".

Por outro lado, muitos alunos acrescentam um "s" em information. Muitas pessoas justificam isso porque se elas precisam de muita informação, é preciso falar no plural, e.x "I need informations on overseas study programs." Mas information é um substantivo incontável (não possui uma forma plural). Tudo que você precisa dizer é, "I need some information."

Reference: O Globo
              English town

Tags: Business English, Tips, inglês, negócios, jargões, lingo, jargão, english, inglês



VBA Tips - Removendo caracteres especiais de uma palavra - Remove and replace special characters



Ao processar um arquivo XML a partir da web tive alguns caracteres especiais, parecidos aos mostrados abaixo, mas o analisador MSXML recusou-se a aceitá-los. Precisaram ser convertidos ao normal (ou seja, sem sotaque) antes que possam ser analisados pelo XML.



Referio-me aos caracteres acentuados que se parecem com isto: é, ñ, André.

Aqui está uma ligeira adaptação do código. Basta passar como parâmetro qualquer seqüência que desejar expurgar; quaisquer caracteres estranhos serão substituídos por seus equivalentes não-acentuados. Poderá usar este código como uma Função VBA numa planilha, bem como em outros aplicativos da suíte MS Office.

Este código tem algumas pequenas variações, por exemplo, em vez de sempre efetuar um loop através da lista de caracteres acentuados, ele percorre a cadeia de entrada que for mais curta. 


Function ConvertAccent (ByVal inputString As String) As String
Const AccChars As String = _
    "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars As String = _
    "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
Dim i As Long, j As Long
Dim tempString As String
Dim currentCharacter As String
Dim found As Boolean
Dim foundPosition As Long
  Let tempString = inputString
  ' loop through the shorter string
  Select Case True
    Case Len(AccChars) <= Len(inputString)
      ' accent character list is shorter (or same)
      ' loop through accent character string
      For i = 1 To Len(AccChars)
        ' get next accent character
        Let currentCharacter = Mid$(AccChars, i, 1)
        ' replace with corresponding character in "regular" array
        If InStr(tempString, currentCharacter) > 0 Then
          Let tempString = Replace(tempString, currentCharacter, Mid$(RegChars, i, 1))
        End If
      Next i
    Case Len(AccChars) > Len(inputString)
      ' input string is shorter
      ' loop through input string
      For i = 1 To Len(inputString)
        ' grab current character from input string and
        ' determine if it is a special char
        Let currentCharacter = Mid$(inputString, i, 1)
        Let found = (InStr(AccChars, currentCharacter) > 0)
        If found Then
          ' find position of special character in special array
          Let foundPosition = InStr(AccChars, currentCharacter)
          ' replace with corresponding character in "regular" array
          Let tempString = Replace(tempString, currentCharacter, _
    Mid$(RegChars, foundPosition, 1))
        End If
      Next i
  End Select
  Let ConvertAccent = tempString
End Function

Se a lista de caracteres acentuados for mais curta (o cenário mais provável), então dê um nó laço com ele e dê a cada carácter a uma variável String. Se existir na cadeia de entrada, o caractere acentuado será substituído com o carácter na lista de seqüência regular, mesmo se ele for encontrado várias vezes (a função Replace). Portanto, independentemente do tamanho da cadeia de entrada, o circuito só será executada 60 vezes (o número de caracteres acentuados) por String.

Se a lista de caracteres acentuados for maior, então ocorrerá um loop através da cadeia de entrada. Cada carácter será pego e atribuído a uma variável String. Se for encontrado na lista de caracteres acentuados, será substituído com o caractere correspondente na lista de cadeia normal. Mesmo que a lista de caracteres acentuados contenha 60 caracteres, o loop só irá executar n vezes (o número de caracteres na cadeia de entrada).

Segue um código variante:

Function ConvertAccent2 (ByVal inputString As String) As String
  Dim X As Long, Position As Long

  Const AccChars As String = _
        "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
  Const RegChars As String = _
        "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"

  For X = 1 To Len(inputString)
    Let Position = InStr(AccChars, Mid(inputString, X, 1))

    If Position Then Mid(inputString, X) = Mid(RegChars, Position, 1)
  Next

  Let ConvertAccent = inputString
End Function

Tags: VBA, XML, Tips, rename, caracter, character, acentuado, MSXML

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine