LISTA DE ESTADOS BRASILEIROS: Sigla, Estado, Capital e RegiaoComo e util termos disponivel uma tabela pronta para ser conectada em nossa tabela e atraves de uma simples PROCV ou PROCH resolvermos todos os nossos problemas nao e mesmo?Entao, aqui esta:Deixe seus comentarios, compartilhe este artigo!brazilsalesforceeffectiveness@gmail.com Dicionario de Dados em VBA - documentacao de sintaxe completaDicionario de Dados sao colecoes aprimoradas. Gosto de usa-los em qualquer lugar onde tenha uma colecao, exceto quando uso uma colecao de Classes. Infelizmente, eu nao encontrei uma unica fonte que documenta o objeto inteiro. Entao, para minha propria documentacao, decidi utilizar isso. Ao final do artigo veja a lista de fontes usadas neste artigo.Vantagens dos objetos do dicionario sobre as colecoesA propriedade CompareMode especifica a sensibilidade a maiusculas e minusculas para Chaves.Um metodo para determinar se um objeto existe no Dicionario.Um metodo para extrair todas as chaves numa matriz.Um metodo para extrair todos os itens numa matriz.Um metodo para alterar um valor Chave.Um metodo para remover todos os itens do Dicionario.As chaves do dicionario nao estao limitadas ao tipo de dados String.Observacao: uma diferenca importante entre o objeto de colecao e o objeto de dicionario e o comportamento da propriedade de item. Se usar a propriedade Item para fazer referencia a uma chave inexistente em uma colecao, recebera um erro. Se usar a propriedade Item para fazer referencia a uma chave inexistente em um dicionario, essa chave sera adicionada ao dicionario. Use o metodo Exists para determinar se uma chave esta ou nao presente em um dicionario.SintaxeCrie um objeto de dicionario em qualquer versao do XLIsso usa um exemplo de ligacao tardia que eu prefiro para simplificar a implantacao para outros PCs.Dim dicMyDictionary as ObjectSet dicMyDictionary = CreateObject("Scripting.Dictionary")Definir a sensibilidade das teclasdicMyDictionary.CompareMode = vbBinaryCompare 'Case SensitivedicMyDictionary.CompareMode = vbTextCompare 'Case InsensitiveAdicionar ItemdicMyDictionary.Add ItemKey, myItemAdicionar ou alterar itemIsso as vezes e chamado de "Silent Add" metodo. Se uma chave nao existir, ela sera adicionada.dicMyDictionary(ItemKey) = myItem-or-Set dicMyDictionary(ItemKey) = myObjectDeterminar se existe um itemSe voce nao quiser o recurso "Silent Add", use isso antes de tentar alterar itens.If dicMyDictionary.Exists(ItemKey) Then ...Obter Numero de ItensDebug.Print = dicMyDictionary.CountObter um item por chaveMyItem = dicMyDictionary(ItemKey)- or -Set MyObject = dicMyDictionary(ItemKey)Obter um item por numeroNota! Os itens do dicionario comecam por 0MyItem = dicMyDictionary.Items()(ItemNumber)- or -Set MyObject = dicMyDictionary.Items()(ItemNumber)Obter uma chave por numeroMyKey = dicMyDictionary.Keys()(ItemNumber)Carregar todos os itens em uma matrizDim vArray as VariantvArray = dicMyDictionary.Items()Carregar todas as chaves em uma matrizDim vArray as VariantvArray = dicMyDictionary.Keys()Remover um itemdicMyDictionary.Remove(ItemKey)Remover todos os itensdicMyDictionary.RemoveAllUsosEliminar duplicatasOs dicionarios sao perfeitos para criar listas exclusivas usando sua funcao "adicionar silenciosamente".Funcao GetDistinct ( ByVal oTarget como Range ) como Variant Dim vArray como Variant Dim dicMyDictionary como objeto Dim v como variante Definir dicMyDictionary = CreateObject ("Scripting.Dictionary") VArray = oTarget Para Cada v em vArray DicMyDictionary (v) = v Proximo GetDistinct = dicMyDictionary.Items ()Funcao finalPesquisa de tabela de codigoSe pretendemos fazer referencia a uma tabela repetidamente e "aleatoriamente" (em oposicao a "sequencialmente"), colocar a tabela em um dicionario e facil e rapido, bem como facil e rapido de usar.Funcao Publica Tbl2Dic ( ByVal oTarget As Range ) As ObjectDim dicMyDictionary