locked
pular linha em VBA Excel RRS feed

  • Pergunta

  • Bom dia senhores,

    Estou com o seguinte problema tenho uma Planilha onde tenho as colunas (c1,c2,c3,c4,c5 e c6), criei uma interface onde preenche os dados usuando-a, porém esta deve preencher as colunas (c1,c3,c4 e C6) na primeira linha, até ai esta ok, criei um botão Salvar, para armazenar mudança e seguir para proxima linha, como um Banco de dados e é ai que estou encontrando problemas, como Salvar dados da primeira linha e seguir para proxima?

    este é o codigo atual para preenchimento:

    Private Sub txtdat_Change()
        Range("c2").Value = txtdat
    End Sub
    Private Sub txtresp_Change()
        Range("d2").Value = txtresp
    End Sub
    Private Sub txtarea_Change()
        Range("e2").Value = txtarea
    End Sub
    Private Sub txtterceiro_Change()
        Range("g2").Value = txtterceiro
    End Sub
    Private Sub txtcodigo_Change()
        Range("h2").Value = txtcodigo
    End Sub
    Private Sub txtlote_Change()
        Range("j2").Value = txtlote
    End Sub

    este é o codigo para salvamento:

    Private Sub CommandButton2_Click()
        ActiveWorkbook.Save
    End Sub

    Podem me auxiliar?

    Fabio Ara~p

    quinta-feira, 10 de janeiro de 2013 13:55

Respostas

  • Sugiro que você crie um botão de comando (CommandButton) de salvar dados e colocar todo código que preenche as células na planilha juntos:

    Private Sub btnSalvar_Click()
        Dim lRow As Long
        
        With Sheets("Plan1") '<- troque o nome da planilha, se necessário
            'Obtém última linha e soma 1:
            lRow = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
            
            'Preenche dados na planilha:
            .Cells(lRow, "C") = txtdat
            .Cells(lRow, "D") = txtresp
            .Cells(lRow, "E") = txtarea
            .Cells(lRow, "G") = txtterceiro
            .Cells(lRow, "H") = txtcodigo
            .Cells(lRow, "J") = txtlote
        End With
    End Sub


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

    domingo, 13 de janeiro de 2013 10:37
    Moderador

Todas as Respostas

  • Sugiro que você crie um botão de comando (CommandButton) de salvar dados e colocar todo código que preenche as células na planilha juntos:

    Private Sub btnSalvar_Click()
        Dim lRow As Long
        
        With Sheets("Plan1") '<- troque o nome da planilha, se necessário
            'Obtém última linha e soma 1:
            lRow = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
            
            'Preenche dados na planilha:
            .Cells(lRow, "C") = txtdat
            .Cells(lRow, "D") = txtresp
            .Cells(lRow, "E") = txtarea
            .Cells(lRow, "G") = txtterceiro
            .Cells(lRow, "H") = txtcodigo
            .Cells(lRow, "J") = txtlote
        End With
    End Sub


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

    domingo, 13 de janeiro de 2013 10:37
    Moderador
  • agora estou  com um problema do seguinte, preciso gerar um numero de registro , como um contador de cliques,

    estou usando o seguinte:

                                    

    Private Sub CommandButton2_Click()
        Dim lRow As Long

        With Sheets("Processos") '<- troque o nome da planilha, se necessário
            'Obtém última linha e soma 1:
            lRow = .Cells(.Rows.Count, "C").End(xlUp).Row + 1

            'Preenche dados na planilha:
            .Cells(lRow, "B") = cmbboximp
            .Cells(lRow, "C") = txtdat
            .Cells(lRow, "D") = txtresp
            .Cells(lRow, "E") = cmbboxdet
            .Cells(lRow, "G") = txtterceiro
            .Cells(lRow, "H") = txtemb
            .Cells(lRow, "I") = txtent
            .Cells(lRow, "j") = txtcodigo
            .Cells(lRow, "l") = txtlot
            .Cells(lRow, "n") = txtop
            .Cells(lRow, "o") = txtlin
            .Cells(lRow, "p") = txtdesc
            .Cells(lRow, "s") = txtquant
            .Cells(lRow, "a") = Label11
            .Cells(lRow, "aa") = txtnota
            .Cells(lRow, "ab") = txtlcont
            .Cells(lRow, "k") = ComboBox1
            .Cells(lRow, "m") = cmbboxsit
            .Cells(lRow, "ac") = cmbboxori

        End With
      Dim vCon As Long
      Label11.Caption = vCon
        vCon = Label11.Caption + 1
        Label11.Caption = vCon


        ThisWorkbook.Save
    End Sub

    porem sempre da erro não sei oque esta errado...podem me auxiliar?

    segunda-feira, 21 de janeiro de 2013 14:48
  • Em qual linha você obtém o erro e o que seria um contador de cliques?

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

    segunda-feira, 21 de janeiro de 2013 19:42
    Moderador
  •  Label11.Caption = vCon
    quarta-feira, 23 de janeiro de 2013 13:28
  • Experimente utilizar, simplesmente:

    Label11 = Val(Label11) + 1

    Não se esqueça que o texto inicial de Label11 deve ser nada ""


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

    quinta-feira, 24 de janeiro de 2013 20:21
    Moderador
  • Bom dia!

    Obrigado Benzadeus, funcionou porém uma vez que fecho a planilha ele para de contar, começa do zero novamente...

    como posso fazer pra q ele "se lembre do ultimo registro?

    terça-feira, 29 de janeiro de 2013 12:18
  • Você deverá guardar essa informação em algum lugar. Suponha que seja na célula da planilha chamada Configurações:

    Private Sub UserForm_Click()
        With ThisWorkbook.Sheets("Configurações").Range("A1")
            .Value = .Value + 1
            Label1.Caption = .Value
        End With
    End Sub
    
    Private Sub UserForm_Initialize()
        Label1.Caption = ThisWorkbook.Sheets("Configurações").Range("A1")
    End Sub


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

    terça-feira, 29 de janeiro de 2013 20:59
    Moderador
  • Tem como fazer com este mesmo código botão de pesquisar e editar?
    domingo, 4 de dezembro de 2016 21:40
  • O tópico ao qual você respondeu é antigo e já foi finalizado. Sugiro que crie um novo tópico com sua pergunta, referenciando este link. Com isso, você aumentará as chances de obter uma resposta e ajudará a manter o fórum organizado.

     

    *Este tópico foi bloqueado*


    http://www.ambienteoffice.com.br

    segunda-feira, 5 de dezembro de 2016 11:34
    Moderador