Notifications
Clear all

Segunda moda?

12 Posts
2 Usuários
0 Reactions
2,669 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

Sei que encontrar o número que mais se repete consiste em "=modo" no Excel. Mas como encontrar o segundo número que mais se repete e assim por diante?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/01/2012 12:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde JJsales

Seja bem vindo ao fórum!

Envio uma planilha do colega Adilson Soledade com uma função em VBA (UDF) que faz o que vc deseja:

Não se esqueça de habilitar as Macros.

Dê retorno.

Abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/01/2012 1:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado Patroppi, o Fórum é show!

A resposta é exatamente a que eu queria, mas só da pra fazer por VBA?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/01/2012 3:14 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Patroppi,

Por favor poderias me mostrar como faz isso? porque está realmente complicado pra mim, não entendo muito dos códigos VBA!

Obrigado!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/01/2012 7:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Segue algumas leituras...para te ajudar
http://technet.microsoft.com/pt-br/libr ... (office.12).aspx

http://support.microsoft.com/kb/151490/pt-br
Fonte: http://www.juliobattisti.com.br/excel120avancado/modulo5/licao6.htm

Criação de funções definidas pelo usuário: Este é um dos maiores benefícios do VBA. Podemos criar funções que executam cálculos repetitivos. Por exemplo, vários planilhas podem conter um campo CPF ou CNPJ. Poderíamos criar, em cada planilha, o código necessário para a validação do DV do CPF ou CNPJ. Porém este procedimento não é o mais indicado, pois além da duplicação do código necessário a validação, teríamos dificuldades para fazer atualizações neste código, pois cada alteração necessária terá que ser feita em vários locais. O ideal é criarmos uma função para validação do DV (uma função deve ser criada dentro de um módulo. Trataremos disso mais adiante.). Em cada planilha, onde for necessária, chamamos a função, passando o valor do CPF como parâmetro. A função calcula o DV e retorna o resultado para a planilha. Desta maneira precisamos criar uma única função. Quando forem necessárias alterações, basta alterar a função (em um único local, ou seja, no módulo onde a função foi criada) e todos os formulários passarão a utilizar a versão atualizada da função.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 4:46 am
Apple
(@apple)
Posts: 12
Active Member
 

Bom dia, Sales !

Para copiar o código vba da planilha q/ o Amigo patropi te enviou e adapatar na sua faça o seguinte.

1- Na plan enviada, click nas teclas ( Alt+F11 ) copie o código q/ irá aparecer ao copiar feiche as janelas.
2- Na sua plan faça o mesmo procedimento com as teclas de atalho, ira paracer váras opçoes click em módulo q/ fica no lado esquerdo, cole o codigo q copiou. Pronto .

Resaltando, terá q/ adptar comforme sua necessidade e layout da plan.

Se tiver dúvida de como fazer isso, poste sua planilha de exemplo aqui no fórum q terá rapidinho uma resposta com os códigos adapitado.

Tomara que tenha entendido, cm/ estava muito atarefado não tive tempo de corrigir.

Abraços,

Se a resposta foi útil, clique na mãozinha no lado direito da ferramenta Citar.

 
Postado : 18/01/2012 4:49 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia JJsales

Vou tentar te explicar como faz:

Na tua planilha clique em ALT+F11 para abrir o editor de VBA ---> Menu Inserir ---> Neste modulo em branco vc copia e cole esta código:

Option Base 1
'Adaptado a partir de exemplo disponível em:
' http://spreadsheetpage.com/index.php/tip/identifying_unique_values_in_an_array_or_range/

Function ItensÚnicos(ConjuntoValores As Range) As Variant
'   Aceita um intervalo como input
    
    Application.Volatile
    
    Dim ValÚnicos()     As Variant ' Matriz que contém os valores únicos
    Dim Elemento        As Variant
    Dim Transf          As Variant
    Dim i               As Integer
    Dim j               As Integer
    Dim Correspondência As Boolean
    
'   Contador para os valores únicos
    NumValÚnicos = 0
'   Loop através da matriz ou intervalo
    For Each Elemento In ConjuntoValores
        Correspondência = False
'       Verificar se o valor já foi inserido
        For i = 1 To NumValÚnicos
            If Elemento = ValÚnicos(2, i) Then
                Correspondência = True
                Exit For '(Saída do Loop)
            End If
        Next i
AddItem:
'       Caso não esteja na lista, o valor é inserido na matriz
        If Not Correspondência And Not IsEmpty(Elemento) Then
            NumValÚnicos = NumValÚnicos + 1
            ReDim Preserve ValÚnicos(2, NumValÚnicos)
            'Inserção do valor
            ValÚnicos(2, NumValÚnicos) = Elemento
            'Inserção da frequência correspondente
            ValÚnicos(1, NumValÚnicos) = Application.WorksheetFunction.CountIf(ConjuntoValores, Elemento)
        End If
    Next Elemento
    
    
'   Ordenar matriz com base nas frequências
    For i = 1 To NumValÚnicos
        For j = i + 1 To NumValÚnicos
        If ValÚnicos(1, i) <= ValÚnicos(1, j) Then
        Transf = ValÚnicos(1, j)
        ValÚnicos(1, j) = ValÚnicos(1, i)
        ValÚnicos(1, i) = Transf
        End If
        Next j
    Next i

'   Reorganizar a matriz
    For i = 1 To NumValÚnicos
        Transf = ValÚnicos(1, i)
        ValÚnicos(1, i) = ValÚnicos(2, i)
        ValÚnicos(2, i) = Transf
    Next i
      
'   Atribuição de valor para a função
    ItensÚnicos = ValÚnicos
End Function

Clique em ALT+Q para voltar a planilha.

Na célula onde vc quer que apareçam os resultados vc terá que digitar a fórmula da função =(ItensÚnicos($A$1:$E$10))
Esta fórmula é de matriz, portanto, no final da fórmula em vez de teclar ENTER, tecle CTRL+SHIFT+ENTER que as chaves serão inseridas automaticamente no início e no final da fórmula.

Vc tem que adaptar a fórmula para o intervalo da tua planilha.

Como a resposta foi útil, clique na mãozinha que fica na parte superior ao lado da ferramenta citar.

Abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 6:26 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Deêm uma olhada na planilha em anexo, creio que está mais explicada!

Valeu mesmo pessoal!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 11:13 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde JJsales

Baixe a planilha e veja se é isto que vc precisa:

Dê retorno.

Abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 11:54 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Patroppi,

Até que enfim eu consegui!!!! o/ Cara valeu mesmo!!!!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 1:14 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Só mais uma duvida antes de encerrar!

Quando eu fecho as matrizes só funciona se eu preencher toda a coluna. Como vc fez pra dar certo e esconder o erro?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 1:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Jonnys

Selecione a coluna --> Formatação Condicional ---> Nova Regra ---> Formatar Apenas Células que Contenham --> Em Formatar Apenas célula com": escolha: Erros --> Formatar ---> Fonte --> Em cor, clique na flexinha ao lado do automático e escolha Branca ---> OK. Repita a mesma operação na outra coluna.

Precisando retorne ao fórum.

Abraço. :D

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/01/2012 4:47 pm