Notifications
Clear all

Macro para buscar matrícula em uma planilha e retornar dados

6 Posts
4 Usuários
0 Reactions
1,681 Visualizações
(@marianapd)
Posts: 48
Eminent Member
Topic starter
 

Olá,
Tenho duas planilhas dentro de um arquivo:

- Controle: onde constam os dados sobre as férias dos funcionários. São cerca de 500 funcionários e cada um tem uma tela, como você pode ver na planilha anexa.
- Férias: planilhas com duas colunas, sendo "A" Matrícula e "B" o saldo de férias.

Eu preciso que a macro busque a matrícula da planilha "Férias" na planilha "Controle", e assim que encontrar puxe o saldo da planilha "férias" para a planilha controle, colando na linha "balance" de cada funcionário. É possível fazer isso?

Obrigada!

 
Postado : 04/02/2014 12:07 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

marianapd,

Boa Tarde!

Qual é a coluna, da linha balancete de cada funcionário, que o saldo de férias existente na aba Férias deve ser copiado?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/02/2014 1:23 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

marianapd,

Em próximos tópicos, solicitamos, por gentileza, que antes de anexar arquivos aqui no fórum, faça primeiro a compactação do mesmo com o ZIP, por menor que seja seu arquivo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/02/2014 1:28 pm
(@alminen)
Posts: 77
Trusted Member
 

O que funcionou pra mim foi isso aqui:

Sub mariana()
Dim fd As Range, l As Long, x As Long
x = Sheets("Férias").Range("A" & Rows.Count).End(xlUp).Row
j = 2
Do While j < x + 1
want = Sheets("Férias").Range("a" & j).Value
Set fd = Sheets("Controle").Range("A:A").Find(what:=want, lookat:=xlPart)
If Not fd Is Nothing Then
Set fd = Sheets("Controle").Range(fd.Address & ":B65536").Find(what:="BALANCE", lookat:=xlWhole)
fd.Offset(0, 1).Value = Sheets("Férias").Range("B" & j).Value
Else
Sheets("Férias").Range("a" & j).EntireRow.Interior.ColorIndex = 3
End If
j = j + 1
Loop
End Sub

Coloquei ali uma validação. Caso não encontre a matrícula da planilha Controle na planilha Férias - não acontece no exemplo que você mostrou - a macro pinta de vermelho a linha contendo a matrícula não encontrada.

Teste e avise =)

 
Postado : 04/02/2014 1:30 pm
(@marianapd)
Posts: 48
Eminent Member
Topic starter
 

Olá, Alminen, deu certo! Super obrigada!!!!!!!! =D

 
Postado : 04/02/2014 1:51 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/02/2014 6:06 pm