Ola pessoal,
Sou novo no fórum, e também no que diz respeito a programação, então vamos ao ponto...
Tenho uma planilha na qual eu tenho um relatório de obras, que preencho campos como horário de entrada e saída de vários funcionários, e uma planilha individual para cada funcionário citado no relatório de obras, onde essa planilha individual, é feito um relatório de horário de entrada e saída do funcionário x. Eu criei um código que é eficaz, que percorre todos os nomes e planilhas, preenchendo o horário conforme o dia citado no relatório de obras, porém, imagino que exista soluções melhores.
O que fazer para melhorar?
Código em abaixo.
Application.ScreenUpdating = False
Dim Data As Date
Dim W As Worksheet
Dim W2 As Worksheet
Dim Hora As Date
Dim Funcionarios As String
Dim Ent1 As Date
Dim Sai1 As Date
Dim Ent2 As Date
Dim Sai2 As Date
Dim He70 As Long
Dim He100 As Long
Dim Adn As Long
Dim Total As Long
Set W = Sheets("Plan1")
Set W2 = Sheets("Plan3")
W.Select
W.Range("J2").Select
Data = W.Range("J2")
Funcionarios = W2.Range("D2")
W.Range("c5").Select
Do While Funcionarios <> ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Ent1 = ActiveCell.Offset(0, 2).Value
Sai1 = ActiveCell.Offset(0, 3).Value
Ent2 = ActiveCell.Offset(0, 4).Value
Sai2 = ActiveCell.Offset(0, 5).Value
He70 = ActiveCell.Offset(0, 7).Value
He100 = ActiveCell.Offset(0, 8).Value
Adn = ActiveCell.Offset(0, 9).Value
Total = ActiveCell.Offset(0, 6).Value
W2.Select
W2.Range("C4").Select
Do While ActiveCell.Value <> Data
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Offset(0, 1).Value <= "" Then
ActiveCell.Offset(0, 1).Value = Ent1
ActiveCell.Offset(0, 2).Value = Sai1
ActiveCell.Offset(0, 3).Value = Ent2
ActiveCell.Offset(0, 4).Value = Sai2
ActiveCell.Offset(0, 5).Value = Total
ActiveCell.Offset(0, 6).Value = He70
ActiveCell.Offset(0, 7).Value = He100
ActiveCell.Offset(0, 8).Value = Adn
Else
MsgBox "Esse dia já foi preenchido"
End If
'--------------------------------------------------------------------------------------
W.Select
W.Range("J2").Select
Set W2 = Sheets("Plan2")
Data = W.Range("J2")
Funcionarios = W2.Range("D2")
W.Range("c5").Select
Do While Funcionarios <> ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Ent1 = ActiveCell.Offset(0, 2).Value
Sai1 = ActiveCell.Offset(0, 3).Value
Ent2 = ActiveCell.Offset(0, 4).Value
Sai2 = ActiveCell.Offset(0, 5).Value
He70 = ActiveCell.Offset(0, 7).Value
He100 = ActiveCell.Offset(0, 8).Value
Adn = ActiveCell.Offset(0, 9).Value
Total = ActiveCell.Offset(0, 6).Value
W2.Select
W2.Range("C4").Select
Do While ActiveCell.Value <> Data
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Offset(0, 1).Value <= "" Then
ActiveCell.Offset(0, 1).Value = Ent1
ActiveCell.Offset(0, 2).Value = Sai1
ActiveCell.Offset(0, 3).Value = Ent2
ActiveCell.Offset(0, 4).Value = Sai2
ActiveCell.Offset(0, 5).Value = Total
ActiveCell.Offset(0, 6).Value = He70
ActiveCell.Offset(0, 7).Value = He100
ActiveCell.Offset(0, 8).Value = Adn
Else
MsgBox "Esse dia já foi preenchido"
End If