none
LANÇAMENTO DA DADOS USERFORM RRS feed

  • Pergunta

  • Boa tarde,

    Tenho uma planilha de Lançamento de horas trabalhadas no excel 2010. Esta planilha ficará em um pc na fábrica, para cada operador dar entrada com seus dados:

    Tenho os dados de entrada e de saída, onde é contado as horas neste intervalos (entrada e saída). Todos os dados são lançados em um UserForm.

    Pois bem, preciso evitar alguns erros, como:

    - O operador acabou de lançar uma entrada, no final de sua tarefa, o mesmo esquece de registrar a saída do trabalho e já lança outra entrada. (ou seja, O operador não podera efetuar uma entrada com outra ainda em aberto (sem sua saída)).

    Abaixo o código:

    Private Sub FINAL_Click()
    'REESIBIR PLANILHA
    Sheets("RESUMO").Visible = True
    'DESPROTEGE PLANILHA
    Worksheets("RESUMO").Unprotect "64829173"
    'REESIBIR PLANILHA
    Sheets("ENTRADA").Visible = True
    'DESPROTEGE PLANILHA
    Worksheets("ENTRADA").Unprotect "64829173"
    'REESIBIR PLANILHA
    Sheets("SAIDA").Visible = True
    'DESPROTEGE PLANILHA
    Worksheets("SAIDA").Unprotect "64829173"
    If CADASTRO.ENTRADA = True Then
    'PERCORRE A COLUNA A ATE ENCONTRAR A PRIMEIRA CELULA EM BRANCO
    Sheets("ENTRADA").Select
    LINHA% = 1
    While Cells(LINHA, 2).Value <> 0
        LINHA = LINHA + 1
    'CADATRA OS DADOS DO FORMULARIO NA LINHA ENCONTRADA
    Wend
    Cells(LINHA, 2).Value = CADASTRO.CODIGO.Value
    Cells(LINHA, 3).Value = CADASTRO.CONF.Value
    Cells(LINHA, 4).Value = CADASTRO.MAQ.Value
    Cells(LINHA, 5).Value = CADASTRO.QTD.Value
    Cells(LINHA, 6).Value = Date
    Cells(LINHA, 7).Value = Time
    Else
    'PERCORRE A COLUNA A ATE ENCONTRAR A PRIMEIRA CELULA EM BRANCO
    Sheets("SAIDA").Select
    LINHA% = 1
    While Cells(LINHA, 2).Value <> 0
        LINHA = LINHA + 1
    'CADATRA OS DADOS DO FORMULARIO NA LINHA ENCONTRADA
    Wend
    Cells(LINHA, 2).Value = CADASTRO.CODIGO.Value
    Cells(LINHA, 3).Value = CADASTRO.CONF.Value
    Cells(LINHA, 4).Value = CADASTRO.MAQ.Value
    Cells(LINHA, 5).Value = CADASTRO.QTD.Value
    Cells(LINHA, 6).Value = Date
    Cells(LINHA, 7).Value = Time
    End If
    'PROTEGE PLANILHA
    Worksheets("ENTRADA").Protect "64829173", True, True, True
    'OCULTA PLANILHA
    Sheets("ENTRADA").Select
        ActiveWindow.SelectedSheets.Visible = False
    'PROTEGE PLANILHA
    Worksheets("SAIDA").Protect "64829173", True, True, True
    'OCULTA PLANILHA
    Sheets("SAIDA").Select
    ActiveWindow.SelectedSheets.Visible = False
    'PROTEGE PLANILHA
    Worksheets("RESUMO").Protect "64829173", True, True, True
    'OCULTA PLANILHA
    Sheets("RESUMO").Select
        ActiveWindow.SelectedSheets.Visible = False
    'SALVA PLANILHA
    ActiveWorkbook.Save
    'FECHA O FORMULARIO
    Unload Me

    End Sub

    Deixo meu email para contatos melhores explicações: leonardorval@hotmail.com

    Obrigado,

    Leonardo Oliveira.

    terça-feira, 20 de março de 2012 19:23

Todas as Respostas

  • Seu código tem muitas instruções que foram criadas a partir do gravador de macro. O código está ilegível e sem indendação. Sua solicitação é simples, mas para tal, seria bom se você disponibilizasse uma Pasta de Trabalho como exemplo para que seja mais fácil analisar.

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 20 de março de 2012 20:51
    Moderador
  • Tudo bem,

    Qual seria a melhor forma de disponibilizar o arquivo?

    Via email? leonardorval@hotmail.com

    O arquivo é simples e pequeno, nada de senhas.

    Obrigado, Leonardo.

    quarta-feira, 21 de março de 2012 16:53
  • Benzadeus,

    Disponibilizei a planilha no endereço:

    http://www.4shared.com/office/vVPt-mU8/file.html

    O arquivo é simples e pequeno, nada de senhas.

    Obrigado, Leonardo Oliveira.

    quarta-feira, 21 de março de 2012 17:43
  • Olá,

    Após estudar sua Pasta de Trabalho, e tenho uma opinião. Não seria melhor você fazer dois formulários diferentes - um de entrada e outro de saída - em que no formulário de saída fossem mostrados todos os registros de funcionários que ainda estão abertos? Por exemplo, usando um controle de ComboBox.

    Já, no formulário de entrada, um código que, antes de gravar as informações à Planilha, verificasse se determinado funcionário ainda possui um ponto aberto?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 21 de março de 2012 22:59
    Moderador
  • Nossa,

    Estou sem idéia de como fazer isso.

    Você ou alguém poderia me ajudar nisso?

    Obrigado, Leonardo.

    quinta-feira, 22 de março de 2012 14:06
  • Você deverá estar um pouco mais familiarizado com VBA. Infelizmente, não tenho tempo para fazer esses dois formulários. E mesmo se você fizer, é provável que você não entenda os códigos por trás do funcionamento do sistema.

    Claro, se tiver dúvidas, me fale.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 22 de março de 2012 17:36
    Moderador