Notifications
Clear all

VBA Variáveis

6 Posts
3 Usuários
0 Reactions
1,123 Visualizações
(@daniels)
Posts: 0
New Member
Topic starter
 

Bom dia a todos!!

Estou fazendo um sistema de busca de dados digitados em meu banco no excel. Mas preciso localizar da seguinte maneira, pelo numero ex. 335078 com a variável As Long ele localiza normalmente. Mas este mesmo numero às vezes esta com uma letra junto ex. 335078R com a variavel As Long ele não localiza ai preciso alterar para As String.

Mas preciso localizar dos dois modos, como faço?

Poderiam me ajudar?

 
Postado : 05/10/2016 6:34 am
(@mprudencio)
Posts: 0
New Member
 

Declara como string que vai localizar os dois mas apenas completo, pois em vba 1234 é diferente de 1234R e sinceramente nao sei se da pra contornar isso.

 
Postado : 05/10/2016 6:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria ter colocado qual rotina e metodo está utilizando para pesquisa, provavelmente declarando como String terá o resultado que procura, mas segue um exemplo básico com o Método FIND utilizando o Parametro "xlPart".

Sub Find_xlPart()
    
    Dim EncontraString As String
    Dim Intervalo As Range
    
    EncontraString = InputBox("Informe o valor a procurar")
    
    If Trim(EncontraString) <> "" Then
        With Sheets("Plan1").Range("A:A")
            Set Intervalo = .Find(What:=EncontraString, _
                                  After:=.Cells(1), _
                                  LookIn:=xlValues, _
                                  LookAt:=xlPart, _
                                 SearchOrder:=xlByRows, _
                                 SearchDirection:=xlPrevious, _
                                 MatchCase:=False)
            If Not Intervalo Is Nothing Then
                Application.Goto Intervalo, True
            Else
                MsgBox "Não Localizado"
            End If
        End With
    End If
End Sub

Fonte : http://www.macoratti.net/12/09/vba_fxls1.htm

O método Find localiza uma informação em um intervalo

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Nome Tipo de Dados Descrição
What Variant Os dados a procurar. Pode ser uma cadeia ou qualquer tipo de dados do Microsoft Excel.
After Variant A célula após o qual você deseja que a pesquisa para começar. Isto corresponde à posição da célula ativa quando uma busca é feita a partir da interface do utilizador. Depois de notar que deve ser uma única célula no intervalo. Lembre-se que a pesquisa começa depois dessa célula, a célula especificada não é pesquisada até que o método envolve a volta a esta célula. Se você não especificar este argumento, a pesquisa começará após a célula no canto superior esquerdo do intervalo
Lookin Variant O tipo de informação
LookAt Variant Pode ser uma das seguintes constantes XlLookAt: xlWhole ou xlPart.
SearchOrder Variant Pode ser uma das seguintes constantes XlSearchOrder : xlByRows ou xlByColumns.
SearchDirection Variant A direção da pesquisa
MatchCase Variant Pode ser True para fazer a busca usando a pesquisa sensível. O valor padrão é False.
MatchByte Variant Usado apenas se você tiver selecionado ou instalado o suporte doube-byte da linguagem>
SearchFormat Variant O formato da pesquisa

Retorno : Um objeto Range que representa a primeira célula onde essa informação é encontrada.

Este método retorna Nothing se nenhuma correspondência for encontrada e não afeta a seleção ou a célula ativa.

As configurações para Lookin, LookAt, SearchOrder, e MatchByte são salvas cada vez que você utilizar este método.
Se você não especificar valores para esses argumentos na próxima vez que você chamar o método, os valores salvos são usados.

A definição destes argumentos altera as configurações na caixa de diálogo Localizar e altera as configurações na caixa de diálogo Localizar alterando os valores salvos que são usados se você omitir os argumentos. Para evitar problemas, defina esses argumentos explicitamente cada vez que você usa este método.

Você pode usar os métodos FindNext e FindPrevious para repetir a pesquisa.

Veja tambem :
Find value in Range, Sheet or Sheets with VBA
http://www.rondebruin.nl/win/s9/win006.htm

[]s

 
Postado : 05/10/2016 7:21 am
(@daniels)
Posts: 0
New Member
Topic starter
 

Como ficaria? Meu codigo esta assim:

Private Sub TextBoxGAD_AfterUpdate()

Dim intervalo As Range
Dim texto As String
Dim GAD As Long
Dim mensagem

GAD = TextBoxGAD
Sheets("BASE").Select
Set intervalo = Range("A3:BV1000")

 
Postado : 05/10/2016 7:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Quando disse para colocar a rotina que está utilizando, tem de ser ela completa, nas linhas que postou, não temos instruções para se localizar, a que disse estar utilizando.

Então vamos por suposição, e se o que pretende vai alem disto, favor discriminar melhor o que precisa para não ficarmos em suposições.

Tente assim :

Private Sub TextBoxGAD_AfterUpdate()

Dim intervalo As Range
Dim texto As String
Dim GAD As String
Dim mensagem


GAD = TextBoxGAD
Sheets("BASE").Select

Set intervalo = Range("A2:B10")
       
        If Trim(GAD) <> "" Then
            With intervalo
                Set intervalo = .Find(What:=GAD, _
                                      After:=.Cells(1), _
                                      LookIn:=xlValues, _
                                      LookAt:=xlPart, _
                                     SearchOrder:=xlByRows, _
                                     SearchDirection:=xlPrevious, _
                                     MatchCase:=False)
                If Not intervalo Is Nothing Then
                    Application.Goto intervalo, True
                    MsgBox "O Valor :- " & GAD & " foi localizado em:- " & intervalo.Address(0, 0)
                Else
                    MsgBox "Não Localizado"
                End If
            End With
        End If
        
End Sub

[]s

 
Postado : 05/10/2016 11:04 am
(@daniels)
Posts: 0
New Member
Topic starter
 

Não deu certo ele apenas buscou onde esta o numero que informei não o restante das informações dos dados. A rotina completa ficou assim:

Private Sub TextBoxGAD_AfterUpdate()

Dim intervalo As Range
Dim texto As String
Dim GAD As Long
Dim mensagem


GAD = TextBoxGAD
Sheets("BASE").Select
Set intervalo = Range("A3:BV1000")


On Error GoTo Erro

pesquisa = Application.WorksheetFunction.VLookup(GAD, intervalo, 2, False)
pesquisa1 = Application.WorksheetFunction.VLookup(GAD, intervalo, 3, False)
pesquisa2 = Application.WorksheetFunction.VLookup(GAD, intervalo, 4, False)
pesquisa3 = Application.WorksheetFunction.VLookup(GAD, intervalo, 5, False)
pesquisa4 = Application.WorksheetFunction.VLookup(GAD, intervalo, 6, False)
pesquisa5 = Application.WorksheetFunction.VLookup(GAD, intervalo, 7, False)
pesquisa6 = Application.WorksheetFunction.VLookup(GAD, intervalo, 8, False)
pesquisa7 = Application.WorksheetFunction.VLookup(GAD, intervalo, 9, False)
pesquisa8 = Application.WorksheetFunction.VLookup(GAD, intervalo, 10, False)
pesquisa9 = Application.WorksheetFunction.VLookup(GAD, intervalo, 11, False)
pesquisa10 = Application.WorksheetFunction.VLookup(GAD, intervalo, 12, False)
pesquisa11 = Application.WorksheetFunction.VLookup(GAD, intervalo, 13, False)
pesquisa12 = Application.WorksheetFunction.VLookup(GAD, intervalo, 14, False) 'data

'facilidade 01

pesquisa13 = Application.WorksheetFunction.VLookup(GAD, intervalo, 15, False) 'estação
pesquisa14 = Application.WorksheetFunction.VLookup(GAD, intervalo, 16, False) 'cabo
pesquisa15 = Application.WorksheetFunction.VLookup(GAD, intervalo, 17, False) 'ss
pesquisa16 = Application.WorksheetFunction.VLookup(GAD, intervalo, 18, False) 'cont ini
pesquisa17 = Application.WorksheetFunction.VLookup(GAD, intervalo, 19, False) 'cont fin
pesquisa18 = Application.WorksheetFunction.VLookup(GAD, intervalo, 20, False) 'caixa

'facilidade 02

pesquisa19 = Application.WorksheetFunction.VLookup(GAD, intervalo, 21, False) 'estação
pesquisa20 = Application.WorksheetFunction.VLookup(GAD, intervalo, 22, False) 'cabo
pesquisa21 = Application.WorksheetFunction.VLookup(GAD, intervalo, 23, False) 'ss
pesquisa22 = Application.WorksheetFunction.VLookup(GAD, intervalo, 24, False) 'cont ini
pesquisa23 = Application.WorksheetFunction.VLookup(GAD, intervalo, 25, False) 'cont fin
pesquisa24 = Application.WorksheetFunction.VLookup(GAD, intervalo, 26, False) 'caixa

'facilidade 03

pesquisa25 = Application.WorksheetFunction.VLookup(GAD, intervalo, 27, False) 'estação
pesquisa26 = Application.WorksheetFunction.VLookup(GAD, intervalo, 28, False) 'cabo
pesquisa27 = Application.WorksheetFunction.VLookup(GAD, intervalo, 29, False) 'ss
pesquisa28 = Application.WorksheetFunction.VLookup(GAD, intervalo, 30, False) 'cont ini
pesquisa29 = Application.WorksheetFunction.VLookup(GAD, intervalo, 31, False) 'cont fin
pesquisa30 = Application.WorksheetFunction.VLookup(GAD, intervalo, 32, False) 'caixa


pesquisa31 = Application.WorksheetFunction.VLookup(GAD, intervalo, 33, False) 'status
pesquisa32 = Application.WorksheetFunction.VLookup(GAD, intervalo, 34, False) 'status croqui
pesquisa33 = Application.WorksheetFunction.VLookup(GAD, intervalo, 35, False) 'resp. campo
pesquisa34 = Application.WorksheetFunction.VLookup(GAD, intervalo, 36, False) 'resp. c.a
pesquisa35 = Application.WorksheetFunction.VLookup(GAD, intervalo, 37, False) 'observações

pesquisa36 = Application.WorksheetFunction.VLookup(GAD, intervalo, 39, False) 'observações
pesquisa37 = Application.WorksheetFunction.VLookup(GAD, intervalo, 40, False) 'observações
pesquisa38 = Application.WorksheetFunction.VLookup(GAD, intervalo, 41, False) 'observações

pesquisa39 = Application.WorksheetFunction.VLookup(GAD, intervalo, 42, False) 'observações
pesquisa40 = Application.WorksheetFunction.VLookup(GAD, intervalo, 43, False) 'observações
pesquisa41 = Application.WorksheetFunction.VLookup(GAD, intervalo, 44, False) 'observações

pesquisa42 = Application.WorksheetFunction.VLookup(GAD, intervalo, 45, False) 'observações
pesquisa43 = Application.WorksheetFunction.VLookup(GAD, intervalo, 46, False) 'observações
pesquisa44 = Application.WorksheetFunction.VLookup(GAD, intervalo, 47, False) 'observações
pesquisa45 = Application.WorksheetFunction.VLookup(GAD, intervalo, 48, False) 'observações
pesquisa46 = Application.WorksheetFunction.VLookup(GAD, intervalo, 49, False) 'observações
pesquisa47 = Application.WorksheetFunction.VLookup(GAD, intervalo, 50, False) 'observações
pesquisa48 = Application.WorksheetFunction.VLookup(GAD, intervalo, 51, False) 'observações
pesquisa49 = Application.WorksheetFunction.VLookup(GAD, intervalo, 52, False) 'observações
pesquisa50 = Application.WorksheetFunction.VLookup(GAD, intervalo, 53, False) 'observações
pesquisa51 = Application.WorksheetFunction.VLookup(GAD, intervalo, 54, False) 'observações
pesquisa52 = Application.WorksheetFunction.VLookup(GAD, intervalo, 55, False) 'observações
pesquisa53 = Application.WorksheetFunction.VLookup(GAD, intervalo, 56, False) 'observações
pesquisa54 = Application.WorksheetFunction.VLookup(GAD, intervalo, 57, False) 'observações
pesquisa55 = Application.WorksheetFunction.VLookup(GAD, intervalo, 58, False) 'observações
pesquisa56 = Application.WorksheetFunction.VLookup(GAD, intervalo, 59, False) 'observações
pesquisa57 = Application.WorksheetFunction.VLookup(GAD, intervalo, 60, False) 'observações
pesquisa58 = Application.WorksheetFunction.VLookup(GAD, intervalo, 61, False) 'observações
pesquisa59 = Application.WorksheetFunction.VLookup(GAD, intervalo, 62, False) 'observações
pesquisa60 = Application.WorksheetFunction.VLookup(GAD, intervalo, 63, False) 'observações
pesquisa61 = Application.WorksheetFunction.VLookup(GAD, intervalo, 64, False) 'observações
pesquisa62 = Application.WorksheetFunction.VLookup(GAD, intervalo, 65, False) 'observações
pesquisa63 = Application.WorksheetFunction.VLookup(GAD, intervalo, 66, False) 'observações
pesquisa64 = Application.WorksheetFunction.VLookup(GAD, intervalo, 67, False) 'observações
pesquisa65 = Application.WorksheetFunction.VLookup(GAD, intervalo, 68, False) 'observações

pesquisa66 = Application.WorksheetFunction.VLookup(GAD, intervalo, 69, False) 'observações
pesquisa67 = Application.WorksheetFunction.VLookup(GAD, intervalo, 70, False) 'observações
pesquisa68 = Application.WorksheetFunction.VLookup(GAD, intervalo, 71, False) 'observações
pesquisa69 = Application.WorksheetFunction.VLookup(GAD, intervalo, 72, False) 'observações
pesquisa70 = Application.WorksheetFunction.VLookup(GAD, intervalo, 73, False) 'observações
pesquisa71 = Application.WorksheetFunction.VLookup(GAD, intervalo, 74, False) 'observações


TextBoxCIREX = pesquisa
ComboBox31GRA = pesquisa1
OptionButton8FURTO = pesquisa2
OptionButton9DESCARGA = pesquisa3
OptionButton10VANDALISMO = pesquisa4
OptionButton11ACIDENTE = pesquisa5
OptionButton13DEVOLUÇÃO = pesquisa6
OptionButton14REMOÇÃO = pesquisa7
TextBox107ENDEREÇO = pesquisa8
TextBox108NUMERO = pesquisa9
TextBox109BAIRRO = pesquisa10
TextBox110REFERENCIA = pesquisa11
TextBox111DATAEVENTO = pesquisa12
TextBox112EST1 = pesquisa13
TextBox113CB1 = pesquisa14
TextBox114SS1 = pesquisa15
TextBox115CONT1 = pesquisa16
TextBox116CONT1 = pesquisa17
TextBox117CX1 = pesquisa18
TextBox119EST2 = pesquisa19
TextBox120CB2 = pesquisa20
TextBox121SS2 = pesquisa21
TextBox122CONT2 = pesquisa22
TextBox123CONT3 = pesquisa23
TextBox118CX2 = pesquisa24
TextBox125EST3 = pesquisa25
TextBox126CB3 = pesquisa26
TextBox127SS3 = pesquisa27
TextBox128CONT3 = pesquisa28
TextBox129CON3 = pesquisa29
TextBox124CX3 = pesquisa30
ComboBox32STATUS = pesquisa31 'status
ComboBox33CROQUI = pesquisa32
TextBox130RESPCAMPO = pesquisa33
TextBox131RESPCA = pesquisa34
TextBox132OBS = pesquisa35
ComboBox34COD1 = pesquisa36
TextBox133MAT1 = pesquisa37
TextBox134QTDE1 = pesquisa38
ComboBox35COD2 = pesquisa39
TextBox135MAT2 = pesquisa40
TextBox136QTDE2 = pesquisa41
ComboBox36COD3 = pesquisa42
TextBox137MAT3 = pesquisa43
TextBox138QTDE3 = pesquisa44
ComboBox37COD4 = pesquisa45
TextBox139MAT4 = pesquisa46
TextBox140QTDE4 = pesquisa47
ComboBox38COD5 = pesquisa48
TextBox141MAT5 = pesquisa49
TextBox142QTDE5 = pesquisa50
ComboBox39COD6 = pesquisa51
TextBox143MAT6 = pesquisa52
TextBox144QTDE6 = pesquisa53
ComboBox40COD7 = pesquisa54
TextBox145MAT7 = pesquisa55
TextBox146QTDE7 = pesquisa56
ComboBox41COD8 = pesquisa57
TextBox147MAT8 = pesquisa58
TextBox148QTDE8 = pesquisa59
ComboBox42COD9 = pesquisa60
TextBox149MAT9 = pesquisa61
TextBox150QTDE9 = pesquisa62
ComboBox43COD10 = pesquisa63
TextBox151MAT10 = pesquisa64
TextBox152QTDE10 = pesquisa65
ComboBox44COD11 = pesquisa66
TextBox153MAT11 = pesquisa67
TextBox154QTDE11 = pesquisa68
ComboBox45COD12 = pesquisa69
TextBox155MAT11 = pesquisa70
TextBox156QTDE12 = pesquisa71

Exit Sub

Erro:

texto = "Não localizado"
mensagem = MsgBox(texto, vbOKOnly + vbInformation)


End Sub
 
Postado : 05/10/2016 11:57 am