Página 1 de 1
Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 14 Jun 2021 às 22:17
por JacoStein
Pessoal,
Preciso exibir na coluna B a quantidade de ocorrências que a palavra da Coluna A aparece.
Como faço para a macro inserir automaticamente esse número?
...se ajudar, esse foi uma macro que achei, mas pela minha limitaçã o no vba, não consegui adaptar.
'=============================
Dim Count As Integer
Dim Target As String
Dim Cell As Object
Dim N As Integer
Sub Contagem_Palavras()
'ADAPTADO DE:
'https://docs.microsoft.com/pt-br/previo ... s-in-excel
Count = 0
Target = InputBox("Que palavra buscar?")
If Target = "" Then GoTo Done
For Each Cell In Selection
N = InStr(1, Cell.Value, Target)
While N <> 0
Count = Count + 1
N = InStr(N + 1, Cell.Value, Target)
Wend
Next Cell
MsgBox Count & " Ocorrências de " & Target
Done:
End Sub
'=================================
Agradeço qualquer ajuda.

Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 08:24
por osvaldomp
Código: Selecionar todosSub ContaTextos()
Dim r As Range, c As Range
Set r = Range("A2:A" & Cells(Rows.Count, 1).End(3).Row)
For Each c In r
c.Offset(, 1).Value = Application.CountIf(r, c)
Next c
End Sub
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 08:40
por JacoStein
@osvaldomp Muito agradecido amigo, Deus te ilumine e abençoe com muito mais conhecimento!
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 08:48
por osvaldomp
Olá,
@JacoStein .
Que bom que ajudou.
God bless you too!
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 08:50
por JacoStein
@osvaldomp , amigo Osvaldo, aproveitando, por exemplo, como poderia ser o código,
se porventura vc quisesse saber quantas vezes a palavra X da Coluna A aparece na listagem da Coluna C ?

Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 09:07
por osvaldomp
JacoStein escreveu: ↑15 Jun 2021 às 08:50
... aparece na listagem da Coluna C ?
Considerei coluna D, conforme aparece na imagem que você postou.
Código: Selecionar todosSub ContaTextosV2()
Dim c As Range, d As Range
Set d = Range("D2:D" & Cells(Rows.Count, 4).End(3).Row)
For Each c In Range("A2:A" & Cells(Rows.Count, 1).End(3).Row)
c.Offset(, 1).Value = Application.CountIf(d, "*" & c & "*")
Next c
End Sub
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 09:38
por JacoStein
muito bom @osvaldomp ! era isso mesmo! mto obrigado!!
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 10:06
por osvaldomp
Olá, @JacoStein .
Complementando, nos seus exemplos a palavra a ser contada aparece sempre no final do texto, no entanto, o código que passei conta a palavra situada em qualquer parte do texto.
Exemplos, o código irá contar verde nos textos abaixo:
ela usa verde
ela usa verde sempre
verde é uma cor, outra cor é o azul ~~~> aqui conta também o azul
Se você quiser contar somente no final do texto, exemplo, neste texto ~~~> verde é uma cor, outra cor é o azul ~~~> para contar contar o azul e não contar o verde, então remova o asterisco do final do CountIf(), ficaria assim ~~~> CountIf(d, "*" & c))
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 17:44
por JacoStein
Bacana mesmo, excelente!
@osvaldomp
Aproveitando, desculpe a ignorância, estou tentando esse código, para validar se na Celula A1 tem o texto "OK", se tiver gera a msgbox.
Pelo que ví, ele só valida quando tem números na célula, e não quando coloco texto, como eu poderia corrigi-lo?
Sub ValidaCampo12()
Dim vMyVal
vMyVal = Range("A1").Value
If vMyVal = OK Then
MsgBox "é igual a OK!"
Else
MsgBox "Não está OK!"
End If
End Sub
Re: Exibir quantidade de ocorrências de uma palavra em uma seleção
Enviado: 15 Jun 2021 às 18:01
por osvaldomp
Se você quer verificar se o conteúdo de A1 é OK (ambas maiúsculas) basta colocar o OK entre aspas no código ~~~>
If vMyVal = "OK" Then
ou
Código: Selecionar todosSub VerificaA1()
If [A1] = "OK" Then
MsgBox "A1 é igual a OK"
Else: MsgBox "A1 é diferente de OK"
End If
End Sub