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
#23016
tenho uma function que faz uma pesquisa na coluna B e mostra pro usuário as respostas. No final do código eu tento usar métodos como select. activecell ou range("").value e o código ignora os comandos como se nem existissem.

Esse é meu código:

Public Function PesquisaItem( _
ByVal strpesquisa As String, _
ByVal coluna_pesquisa As Range, _
ByVal tipo_pesquisa As Integer) As String
On Error Resume Next
Dim str_result As String
Dim i As Integer
Dim tem_resultado As Boolean
Dim ultima_linha As Integer
Dim linha_leitura As String


End If
'pegamos a última linha preenchida da coluna
ultima_linha = CInt(Range(coluna_pesquisa.Address).End(xlDown).Cells.Row) + 1
str_result = Empty
tem_resultado = False
If strpesquisa <> Empty Then 'se pesquisa foi preenchida
'pecorremos 1 a 1 as células da coluna selecionada em busca de ocorrências
For i = 0 To ultima_linha - 1 Step 1
linha_leitura = Plan1.Cells(i, Range(coluna_pesquisa.Address).End(xlDown).Cells.Column)
'se tipo da pesquisa = 1 (pesquisa exata)
If tipo_pesquisa = 1 Then
If UCase(linha_leitura) = strpesquisa Then
tem_resultado = True

'meucodigo


str_result = cont & "- " & linha_leitura & "*#*" & str_result
cont = cont + 1
End If
Else 'pesquisa ocorrencia contendo a palavra chave
If InStr(1, linha_leitura, strpesquisa) Then
tem_resultado = True
str_result = i & "- " & linha_leitura & vbCrLf & str_result
cont = cont + 1
End If
End If
Next i
'exibe caixa de mensagem com as ocorrências
'pode ser substituído por preenchimento de célula(s) com resultado
If Not tem_resultado Then
MsgBox "nenhuma ocorrência da palavra pesquisada foi encontrada!"
Else

'MsgBox str_result
Dim entrada As Variant
entrada = InputBox(str_result)
Cells(entrada, 1).Select
MsgBox (entrada)


End If
PesquisaItem = "1"
Else
PesquisaItem = "0"
End If

'comando que não funciona exemplo
Range("m1").value = 9

End Function
#23058
Tem alguns pontos curiosos. No início tem um END IF Está correto isso?
E como tem um On Error Resume Next no início algum erro pode está ocorrendo pode está ocorrendo no decorrer dos comandos.
Insira um ponto de interrupção na linha onde onde está ultima_linha = CInt(Range... e vai depurando passo-a-passo com o F8.
Para inserir uma linha de interrupção, clica em alguma parte da linha escolhida e pressiona F9.
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