Usuário com melhor resposta
Contador de numeros

Pergunta
-
Bom dia
Em uma célula, o valor assumido varia entre 1 e 5 dependo da formatação aplicada. Existe algum modo de contar quantas vezes um determinado numero aparece nessa célula e depois zerar o contador?
Grato
Ex.:
- Editado carlito_penna segunda-feira, 13 de janeiro de 2014 15:47
Respostas
-
Meu caro Durval, a macro em planilha propria roda normal e apresenta os resultados esperados. Mas em conjunto com outras macros na planilha de trabalho, ocorrem os erros visto print abaixo:
Onde errei?
Carlito,
O nome exibido na planilha nem sempre é o nome definido no projeto do VBA. Normalmente, é usado o nome padrão da planilha (por exemplo, "Plan1").
Segue abaixo um print-screen para esclarecer melhor sua dúvida. Onde à aba que aparece para o usuário tem o nome com "mês/ano" e no projeto tem o nome "Plan ...". Faça o Debug no VBA para identificar o nome do seu ActiveSheet.
Por favor, não esqueça de votar como útil todos os posts que estão te ajudando nesta solução !
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Durval Ramos terça-feira, 14 de janeiro de 2014 19:06
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 19:02
Todas as Respostas
-
Carlito,
Você não precisa utilizar VBA para realizar esta operação.
Se você estiver utilizando Excel em Português utilize a função CONT.SES (se for em inglês é COUNT.IFS) abaixo em uma célula:
=CONT.SES(K10:K19;N12)
Onde o primeiro parâmetro é o intervalo/coluna dos números que você quer contar e o segundo parâmetro é o valor do número que você está procurando. Abaixo segue um print-screen para facilitar o entendimento da questão:
As informações na fórmula estão destacadas em cores diferentes. Monte este exemplo para que você possa simular com precisão o resultado.
Se foi útil para sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 13 de janeiro de 2014 22:40
-
Durval, esse contador tem uma característica que o cont.ses não faz: Ele conta, acumula e conserva o somatório em uma unica célula. O cont.ses, apenas retorna o quantitativo de determinado numero.
Ex.:
Se na célula G4 aparece o 1, fica lá o 1, se houver nova ocorrência do numero 1, agora o somatório desse numero é 2 e assim sucessivamente para qualquer numero que apareça em G4.
-
Durval, esse contador tem uma característica que o cont.ses não faz: Ele conta, acumula e conserva o somatório em uma unica célula. O cont.ses, apenas retorna o quantitativo de determinado numero.
Ex.:
Se na célula G4 aparece o 1, fica lá o 1, se houver nova ocorrência do numero 1, agora o somatório desse numero é 2 e assim sucessivamente para qualquer numero que apareça em G4.
Carlito,
Poderia indicar então outro exemplo baseado em sua descrição?
Indique uma coluna com alguns valores na situação de repetição e outra coluna com o resultado esperado para que possamos dar uma sugestão de solução.
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil" -
-
Carlito,
Você vai precisar fazer uma fórmula em uma das células e criar uma macro para seu botão.
A fórmula é a seguinte:
=ALEATÓRIOENTRE(MENOR(H11:H17;1);MAIOR(H11:H17;1))
Onde o Range está seus números de Referência e a fórmula irá buscar um número aleatório entre o menor e o maior destes.
No botão, você vai inserir a macro abaixo para que os valores permaneçam na referentes células de Ocorrências, somando o valor aleatório e atualizando para o próximo número aleatório.A macro é a seguinte:
Sub Macro3() Select Case Plan1.Cells(15, 6) Case 0 Plan1.Cells(11, 9) = CInt(Plan1.Cells(11, 9)) + 1 Exit Sub Case 1 Plan1.Cells(12, 9) = CInt(Plan1.Cells(12, 9)) + 1 Exit Sub Case 2 Plan1.Cells(13, 9) = CInt(Plan1.Cells(13, 9)) + 1 Exit Sub Case 3 Plan1.Cells(14, 9) = CInt(Plan1.Cells(14, 9)) + 1 Exit Sub Case 4 Plan1.Cells(15, 9) = CInt(Plan1.Cells(15, 9)) + 1 Exit Sub Case 5 Plan1.Cells(16, 9) = CInt(Plan1.Cells(16, 9)) + 1 Exit Sub Case 6 Plan1.Cells(17, 9) = CInt(Plan1.Cells(17, 9)) + 1 Exit Sub End Select End Sub
Segue o print-screen como evidência de teste.
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Durval Ramos terça-feira, 14 de janeiro de 2014 19:06
-
-
Meu caro Durval, a macro em planilha propria roda normal e apresenta os resultados esperados. Mas em conjunto com outras macros na planilha de trabalho, ocorrem os erros visto print abaixo:
Onde errei?
- Editado carlito_penna terça-feira, 14 de janeiro de 2014 18:05
- Sugerido como Resposta Durval Ramos terça-feira, 14 de janeiro de 2014 19:06
-
Meu caro Durval, a macro em planilha propria roda normal e apresenta os resultados esperados. Mas em conjunto com outras macros na planilha de trabalho, ocorrem os erros visto print abaixo:
Onde errei?
Carlito,
O nome exibido na planilha nem sempre é o nome definido no projeto do VBA. Normalmente, é usado o nome padrão da planilha (por exemplo, "Plan1").
Segue abaixo um print-screen para esclarecer melhor sua dúvida. Onde à aba que aparece para o usuário tem o nome com "mês/ano" e no projeto tem o nome "Plan ...". Faça o Debug no VBA para identificar o nome do seu ActiveSheet.
Por favor, não esqueça de votar como útil todos os posts que estão te ajudando nesta solução !
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Durval Ramos terça-feira, 14 de janeiro de 2014 19:06
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 19:02
-