Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
[Resolvido] Função Vba para Contar (com Limite) os espaços vazios
[Resolvido] Função Vba para Contar (com Limite) os espaços vazios
Saudações amigos,
estou precisando muito da vossa ajuda no seguinte problema:
Preciso construir uma Função que me retornará a quantidade de espaços vazios que existe no Texto de uma célula, sendo que tenho um ponto limite, onde a função deve Contar os espaços vazios até logo após este limite.
Por exemplo, vamos supor que tenho o seguinte Texto abaixo na célula A1:
GOSTO MUITO DE UTILIZAR MACROS VBA NO EXCEL
Gostaria por exemplo de Contar a quantidade de espaços vazios que existe no texto, tendo como referência(limite) a palavra MACROS.
a Função precisa Contar os espaços vazios até logo após encontrar a palavra MACROS no texto mencionado acima.
sempre Contar até logo após a palavra de referência(limite), ou seja, neste Texto do exemplo a função deveria me retornar o valor igual a 5, pois é a quantidade de espaços vazios que existe no Texto até logo após a ocorrência da palavra MACROS .
desde já, agradeço a vossa ajuda .
estou precisando muito da vossa ajuda no seguinte problema:
Preciso construir uma Função que me retornará a quantidade de espaços vazios que existe no Texto de uma célula, sendo que tenho um ponto limite, onde a função deve Contar os espaços vazios até logo após este limite.
Por exemplo, vamos supor que tenho o seguinte Texto abaixo na célula A1:
GOSTO MUITO DE UTILIZAR MACROS VBA NO EXCEL
Gostaria por exemplo de Contar a quantidade de espaços vazios que existe no texto, tendo como referência(limite) a palavra MACROS.
a Função precisa Contar os espaços vazios até logo após encontrar a palavra MACROS no texto mencionado acima.
sempre Contar até logo após a palavra de referência(limite), ou seja, neste Texto do exemplo a função deveria me retornar o valor igual a 5, pois é a quantidade de espaços vazios que existe no Texto até logo após a ocorrência da palavra MACROS .
desde já, agradeço a vossa ajuda .
Editado pela última vez por Mathmatic em Seg Fev 24, 2020 1:08 pm, em um total de 2 vezes.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Função Vba para Contar (com Limite) os espaços vazios na célula
Talvez algo +/- assim:
Obs.: As is, sem muitos testes/validações
Código: Selecionar todos
Function intContaEspaco(ByVal strTexto As String, ByVal strDelimite As String) As Integer
Dim i As Integer, x As Integer
If Not IsNull(strDelimite) Then
strTexto = Mid(strTexto, 1, InStr(strTexto, strDelimite) + Len(strDelimite))
End If
For i = 1 To Len(strTexto)
If Mid(strTexto, i, 1) = VBA.Chr(32) Then x = x + 1
Next
intContaEspaco = x
End Function
Re: Função Vba para Contar (com Limite) os espaços vazios
sr. Reinaldo,
era isso mesmo, funcionou muito bem sua função para Contar (com Limite) a quantidade de espaços vazios...
Aproveitando sua generosidade, tenho uma outra necessidade que também me ajudará muitíssimo no meu dia-a-dia:
tenho uma fórmula que Conta os caracteres até encontrar uma determinada palavra no texto da célula. Se usar como exemplo a mesma palavra MACROS, a fórmula que eu tenho me dá como resultado o valor 25, ou seja, essa fórmula que eu tenho, procura no texto da célula a palavra MACROS e então me informa que são 25 caracteres até encontrar essa palavra MACROS (contando junto a primeira letra da palavra).
essa minha outra necessidade é a seguinte:
eu gostaria de conseguir buscar no texto a palavra posterior e a palavra anterior, tendo como referência a quantidade de caracteres .
por exemplo, Se na célula A1 está o texto já mencionado no inicio deste tópico, na célula B1 tenho minha fórmula que contará os caracteres com referência numa determinada palavra (vou usar aqui o resultado 25).
Então, de acordo com o resultado 25 calculado na célula B1 pela minha fórmula, gostaria de ter na célula C1 uma função que me informará como resultado a palavra: UTILIZAR e na célula D1 uma função que me informará como resultado a palavra: VBA .
Resumindo: pela quantidade de caracteres 25, gostaria de conseguir encontrar a palavra posterior e a palavra anterior no texto.
será que existe esta possibilidade ?
muito obrigado por toda ajuda.
era isso mesmo, funcionou muito bem sua função para Contar (com Limite) a quantidade de espaços vazios...
Aproveitando sua generosidade, tenho uma outra necessidade que também me ajudará muitíssimo no meu dia-a-dia:
tenho uma fórmula que Conta os caracteres até encontrar uma determinada palavra no texto da célula. Se usar como exemplo a mesma palavra MACROS, a fórmula que eu tenho me dá como resultado o valor 25, ou seja, essa fórmula que eu tenho, procura no texto da célula a palavra MACROS e então me informa que são 25 caracteres até encontrar essa palavra MACROS (contando junto a primeira letra da palavra).
essa minha outra necessidade é a seguinte:
eu gostaria de conseguir buscar no texto a palavra posterior e a palavra anterior, tendo como referência a quantidade de caracteres .
por exemplo, Se na célula A1 está o texto já mencionado no inicio deste tópico, na célula B1 tenho minha fórmula que contará os caracteres com referência numa determinada palavra (vou usar aqui o resultado 25).
Então, de acordo com o resultado 25 calculado na célula B1 pela minha fórmula, gostaria de ter na célula C1 uma função que me informará como resultado a palavra: UTILIZAR e na célula D1 uma função que me informará como resultado a palavra: VBA .
Resumindo: pela quantidade de caracteres 25, gostaria de conseguir encontrar a palavra posterior e a palavra anterior no texto.
será que existe esta possibilidade ?
muito obrigado por toda ajuda.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Função Vba para Contar (com Limite) os espaços vazios
Experimente
Sintaxe/utilização:
Na Planilha SuaCelula=strPalavra(A1; "MACROS"; -1) (Utilizando-1 obtenha o texto anterior e 1 o posterior)
No Vba
Código: Selecionar todos
Function strPalavra(ByVal strtexto As String, ByVal strDelimite As String, ByVal intLocal As Integer) As String
Dim MyArray() As String
Dim x As Integer
MyArray = VBA.Split(strtexto, " ")
For x = LBound(MyArray) To UBound(MyArray)
If MyArray(x) = strDelimite And intLocal - 1 Then
strPalavra = MyArray(x - 1)
ElseIf MyArray(x) = strDelimite And intLocal = 1 Then
strPalavra = MyArray(x + 1)
End If
Next
End Function
Na Planilha SuaCelula=strPalavra(A1; "MACROS"; -1) (Utilizando-1 obtenha o texto anterior e 1 o posterior)
No Vba
Código: Selecionar todos
Sub Exemplo()
Dim strtexto As String
strtexto = strPalavra([a1].Value, "MACROS", -1)
MsgBox strtexto
strtexto = strPalavra([a1].Value, "MACROS", 1)
MsgBox strtexto
End Sub
Re: Função Vba para Contar (com Limite) os espaços vazios
sr. Reinaldo,
sua função para encontrar no texto a palavra posterior e a palavra anterior também ficou boa.
Mas notei que o senhor usou como referência uma "palavra", neste caso, a palavra MACROS.
Haveria uma forma de usar como referência uma determinada quantidade de Caracteres ? por exemplo, a quantidade 25, que sugeri anteriormente ?
ou seja, ao invés da variável de referência ser uma palavra, então a variável de referência seria uma determinada quantidade de Caracteres, neste caso 25.
Muito obrigado por sua disposição em ajudar-me.
sua função para encontrar no texto a palavra posterior e a palavra anterior também ficou boa.
Mas notei que o senhor usou como referência uma "palavra", neste caso, a palavra MACROS.
Haveria uma forma de usar como referência uma determinada quantidade de Caracteres ? por exemplo, a quantidade 25, que sugeri anteriormente ?
ou seja, ao invés da variável de referência ser uma palavra, então a variável de referência seria uma determinada quantidade de Caracteres, neste caso 25.
Muito obrigado por sua disposição em ajudar-me.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Função Vba para Contar (com Limite) os espaços vazios
Fico com a impressão que a sua demanda e outra; diferente da anunciada. Postei o que a principio e omais simples, rapido e coerente com sua necessidade informada inicialmente.
Sem uma maior noção sobre a necessidade; maiores descrições/exemplos fica difícil.
Sem uma maior noção sobre a necessidade; maiores descrições/exemplos fica difícil.
[Resolvido] Função Vba para Contar (com Limite) os espaços vazios
sr. Reinaldo,
vou abrir um novo tópico para uma nova demanda.
a demanda deste tópico já foi Resolvida.
muito obrigado por sua ajuda.
vou abrir um novo tópico para uma nova demanda.
a demanda deste tópico já foi Resolvida.
muito obrigado por sua ajuda.