none
Formulario VBA pula varias linhas antes de salvar dados em planilha de dados. RRS feed

  • Pergunta

  • Estou com essas linhas de programação que estou utilizando em um formulário de cadastro que criei que criei, 

    So que toda vez que peço para cadastrar novos valores ele pula varias linhas no inicio da tabela...

    e so depois começa a rotina de procurar a ultima linha vazia e colar os dados, 

    alguém pode me ajudar a corrigir isso?

    Private Sub CADASTRAR_BOTAO_Click()

    DATA = Date

    If DATA = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If

    If TURNO = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If

    If CELULA = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If

    If CMMF = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If

    If PLANEJADO = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If


    If REALIZADO = "" Then

    MsgBox "FALTAM DADOS"

    Exit Sub
    End If


        totalregistro = Worksheets("PRODUÇÃO").UsedRange.Rows.Count + 1
        With Worksheets("PRODUÇÃO")


        'aqui começa a gravação do meu dados

        Cells(totalregistro, 1) = DATA

        Cells(totalregistro, 2) = TURNO

        Cells(totalregistro, 3) = CELULA

        Cells(totalregistro, 4) = CDbl(CMMF.Text)

        Cells(totalregistro, 5) = CDbl(PLANEJADO.Text)

        Cells(totalregistro, 6) = CDbl(REALIZADO.Text)
    End With

    'mensagem de gravação concluidas
    MsgBox "Produção Gravada com Sucesso"
    'LIMPA DADOS DA CAIXAS
    DATA = ""
    TURNO = ""
    CELULA = ""
    CMMF = ""
    PLANEJADO = ""
    REALIZADO = ""

    DATA = Date



    End Sub

    terça-feira, 2 de outubro de 2018 23:58

Todas as Respostas

  • Luiz

    eu costumo utilizar o end(Xlup).Row para identificar a ultima linha preenchida, as vezes o excel da uma linha diferente no UsedRange e por isso pode pular algumas para você.

    Tenta assim:

    totalregistro = Worksheets("PRODUÇÃO").Range("A1048576").end(XlUp).Row + 1

    Abraço!


    Natan


    • Editado 'Natan Silva quarta-feira, 3 de outubro de 2018 14:17
    quarta-feira, 3 de outubro de 2018 14:17
  • O Código deu certo.

    Obrigado!

    Agora estou com outro problema, kkkkk

    Tenho 3 userforms para cadastro de informações.

    E quando fecho todos e faço a gravação nas planilhas, e clico no BOTÃO SAIR 

    O EXCEL FICA RODANDO EM SEGUNDO PLANO AINDA, e da erros quando abro novamente.

    Como consigo fechar todas as userfoms, salvar os dados cadastrados e encerrar o excel sem deixa-lo rodado em segundo plano?

    Aguardo retorno. 


    • Editado LuizAXLL domingo, 7 de outubro de 2018 15:53
    domingo, 7 de outubro de 2018 15:48
  • Olá Luiz,

    Geralmente eu uso a referencia relativa para localizar a última linha e descer uma para colar os dados da seguinte forma:

        Sheets("Cadastro").Select
        Range("A1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select

       ...

      A minha planilha de cadastro está estruturada assim: 

    Espero que ajude o modelo da base e o código.

    Até mais,

    Luciana

    sexta-feira, 12 de outubro de 2018 00:20