Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#65181
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. :)
Imagem
#65183
Código: Selecionar todos
Sub 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
JacoStein agradeceu por isso
#65188
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 todos
Sub 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
#65192
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))
JacoStein agradeceu por isso
#65209
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
#65210
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 todos
Sub VerificaA1()
 If [A1] = "OK" Then
  MsgBox "A1 é igual a OK"
 Else: MsgBox "A1 é diferente de OK"
 End If
End Sub
JacoStein agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord