Boa Tarde
Teria como simplificar a macro abaixo pois vou tera mais linhas iguais.
Teria como colocar um loop ai ?
mudara: Pro1.Value , Label_Pro1, Label_Pro1A ....
Private Sub Pro1_Enter() Sheets("Estoque").Activate Dim intervalo As Range Dim codigo As Integer Set intervalo = Plan19.Range("B6:W605") codigo = Pro1.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro1.Caption = Pesquisa Label_Pro1A.Caption = Pesquisa1 codigo = Pro2.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro2.Caption = Pesquisa Label_Pro2A.Caption = Pesquisa1 codigo = Pro3.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro3.Caption = Pesquisa Label_Pro3A.Caption = Pesquisa1 codigo = Pro4.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro4.Caption = Pesquisa Label_Pro4A.Caption = Pesquisa1 codigo = Pro5.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro5.Caption = Pesquisa Label_Pro5A.Caption = Pesquisa1 codigo = Pro6.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro6.Caption = Pesquisa Label_Pro6A.Caption = Pesquisa1 codigo = Pro7.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro7.Caption = Pesquisa Label_Pro7A.Caption = Pesquisa1 codigo = Pro8.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro8.Caption = Pesquisa Label_Pro8A.Caption = Pesquisa1 codigo = Pro8.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) Label_Pro8.Caption = Pesquisa Label_Pro8A.Caption = Pesquisa1 End Sub
Tem sim, tente desta forma:
Private Sub Pro1_Enter() Sheets("Estoque").Activate Dim i as Integer Dim aux as Variant Dim aux2 as Variant Dim aux3 as Variant Dim intervalo As Range Dim codigo As Integer Set intervalo = Plan19.Range("B6:W605") For i = 1 to 8 aux = "Pro" & i aux2 = "Label_" & aux aux3 = "Label_Pro" & aux & "A" codigo = aux.Value Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False) Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False) aux2.Caption = Pesquisa Label_Pro1A.Caption = Pesquisa1 Next i
Se a resposta lhe foi útil, clique no joinha!
ola Grato, deu erro aqui
codigo = aux.Value
o objeto e obrigatorio
Segue minha sugestão:
Option Explicit Private Sub Pro1_Enter() Dim intervalo As Range Dim codigo As Integer Dim lin As Long Dim i As Long Application.ScreenUpdating = False ThisWorkbook.Worksheets("Estoque").Activate Set intervalo = Plan19.Range("B6:W605") For i = 1 To 200 'vai do 1 ao 200 codigo = Me.Controls("Pro" & i).Value lin = intervalo.Find(codigo, lookat:=1).Row Me.Controls("Label_Pro" & i).Caption = Plan19.Cells(lin, 4).Value Me.Controls("Label_Pro" & i & "A").Caption = Plan19.Cells(lin, 6).Value Next i Application.ScreenUpdating = True End Sub
Qualquer coisa da o grito.
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
deu este erro
Nao foi possivel encontrar o objeto especificado
Me.Controls("Label_Pro" & i & "A").Caption = Plan19.Cells(lin, 6).Value
fazerbem, a variável "i" está em qual valor?
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
A variavel é uma numero dentro das TexBox do formulario, nao esta na planilha.
Na imagem
o quadrado 11 se chama Pro1
o Quadrado 12 se chama Pro2
A mesma coisa se vale as labels
as labels nao, elas usan Vlook
codigo = Proi.Value
Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 4, False)
Pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False)
Label_Pro1.Caption = Pesquisa
Label_ProiA.Caption = Pesquisa1
Fazerbem,
A sua utilizava VLoopUp para definir o valor da Pesquisa e Pesquisa1 para depois definir as labels com os valores das pesquisar...
Eu removi isso... Utilizei o método find()
Tem as labels Label_Prox e as labels Label_ProxA
O loop que eu adaptei faz de Label_Pro1 até Label_Pro200 e Label_Pro1A até Label_Pro200A
Você tem que ajustar pela quantidade de labels na linha onde inseri o comentário.
Quando deu o erro, a variável "i" estava em qual valor?
Qualquer coisa da o grito.
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
vou sair 30 minutos.
mas segue o codigo
so troquei a linha 6 pra 7
Private Sub Pro1_Enter() 'Sheets(D).s Dim intervalo As Range Dim codigo As Integer Dim lin As Long Dim i As Long Application.ScreenUpdating = False ' Sheets("Estoque").Activate ThisWorkbook.Worksheets("Estoque").Activate Set intervalo = Plan19.Range("B6:W605") For i = 1 To 200 'vai do 1 ao 200 codigo = Me.Controls("Pro" & i).Value lin = intervalo.Find(codigo, lookat:=1).Row Me.Controls("Label_Pro" & i).Caption = Plan19.Cells(lin, 4).Value Me.Controls("Label_Pro" & i & "A").Caption = Plan19.Cells(lin, 7).Value Next i Application.ScreenUpdating = True End Sub
Na depuração do código, no momento do erro, qual o valor da variável "i" [3]
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Na depuração do código, no momento do erro, qual o valor da variável "i" [3]
Bernardo acho que foi falha aqui no formulario coloquei de 1 a 8 deu certo.
Pera ai ja te falo
achei o erro
estava dando tipos incompatioveis, mas é porque propositalmente eu deixei duas imagens sem codigos, pra no futuro so ter que incluir o codigo.
coloquei de 1 a 52 e deu certo agora
Como fazer pra nao dar o erro se algum quadrado estiver sem codigo ?
Logo no início insere isso:
on error resume next
Qualquer coisa da o grito.
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel