Ir para conteúdo
Fórum Script Brasil
  • 0

Do while, ultil, next, ou a melhor solução!


Matheus Santos

Pergunta

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

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...