Preciso ajustar o codigo abaixo para que ele SEMPRE insira depois do valor buscado o digito separador " ; " , da forma atual o digito é adicionado apenas para separar os valores buscados, ex: "T 1 ; T 2 ; T 3" ou no caso de uma busca com unico resultado fica assim Ex: "T 1". Preciso que fique assim "T 1 ; T 2 ; T 3 ;" e no caso de busca unica "T1 ;" no caso da busca não ter resultado (ficar vazia) a função esta ok e deixa a celula em branco (vazia), o problema esta apenas quando tem algo a ser buscado.
Porém após o "ultimo" item buscado pela função não adiciona o " ; " . Depois de rodar essa função eu preciso concatenar os resultados e ai fica tudo desconfigurado. Acredito que seja algo simples de se ajustar, mas não sei como proceder.
Function PROCVCONCAT(sProcura As String, vBD As Variant, lngOffset As Long)
'Altere essa constante se quiser utilizar outro caractere como dígito separador.
Const strSeparador As String = " ; "
Dim l As Long
Dim lngTotal As Long
Dim strTemp() As String
Dim varTemp As Variant
'Transformo o parâmetro de entrada (que pode ser uma matriz ou uma Range) para trabalhar
'apenas com uma Variant:
varTemp = CVar(vBD)
For l = LBound(varTemp, 1) To UBound(varTemp, 1)
If varTemp(l, 1) = sProcura Then
'Foi encontrada uma correspondência na primeira coluna do vetor de varTemp.
lngTotal = lngTotal + 1
ReDim Preserve strTemp(1 To lngTotal)
strTemp(lngTotal) = varTemp(l, lngOffset)
End If
Next l
If IsArrayEmpty(strTemp) Then
'Caso não seja encontrada nenhuma correspondência, a função retornará uma célula vazia.
PROCVCONCAT = ""
Exit Function
Else
'Join concatena todas as correspondências encontradas do vetor strTemp:
PROCVCONCAT = Join(strTemp, strSeparador)
End If
End Function
Postado : 01/05/2015 2:01 pm