none
Insertar dados numa nova linha RRS feed

  • Pergunta

  • Olá

    tenho um trabalho para fazer para a universidade em excel, e não sou muito entendida no assunto. Tenho aqui uma dúvida.

    Eu quero inserir novos dados numa tabela já construída. O problema é que só consigo inserir na primeira linha, quando tento inserir novamente, escreve por cima.

    Deixo aqui o que fui montando, podem me dizer onde está o erro:

    Private Sub Label7_Click()
    Dim ultimalinha As Object
    Set ultimalinha = ActiveSheet.Range("A55").End(xlUp)


    ultimalinha.Offset(32, 1).Value = TextBox1.Text
    ultimalinha.Offset(32, 2).Value = TextBox2.Text
    ultimalinha.Offset(32, 3).Value = TextBox3.Text
    ultimalinha.Offset(32, 4).Value = TextBox4.Text
    ultimalinha.Offset(32, 5).Value = TextBox5.Text
    ultimalinha.Offset(32, 6).Value = TextBox6.Text

    MsgBox "Registo inserido", 6, "Inserir"
    End



    End Sub

    Basicamente o que acontece, é que os novos dadas só são inseridos na linha 33, mas eu queria que fosse sempre preenchendo (33,34,...)

    Alguém têm alguma sugestão?

    terça-feira, 12 de junho de 2012 20:34

Respostas

  • Tente trocar

    Set ultimalinha = ActiveSheet.Range("A55").End(xlUp)

    por

    Set ultimalinha = ActiveSheet.Range("A65536").End(xlUp).Offset(1)

    e troque as linhas

    ultimalinha.Offset(32, 1).Value = TextBox1.Text

    ultimalinha.Offset(32, 2).Value = TextBox1.Text

    ...

    por

    ultimalinha.Offset(, 1).Value = TextBox1.Text

    ultimalinha.Offset(, 2).Value = TextBox2.Text

    ...


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

    terça-feira, 12 de junho de 2012 22:41
    Moderador

Todas as Respostas

  • Vou trocar por miúdos o que o teu procedimento está a fazer:

      1 - Procura a ultima celula preenchida da coluna A, que fique na linha 55 ou acima.

      2 - Insere dados 32 linhas abaixo desta referência, nas celulas das colunas A, B, C, D, E, F

      3 - Mosta uma mensagem.

      4- Termina a execução!!??  O End apaga o contéudo de todas as variaveis do modulo.

    terça-feira, 12 de junho de 2012 21:26
  • Tente trocar

    Set ultimalinha = ActiveSheet.Range("A55").End(xlUp)

    por

    Set ultimalinha = ActiveSheet.Range("A65536").End(xlUp).Offset(1)

    e troque as linhas

    ultimalinha.Offset(32, 1).Value = TextBox1.Text

    ultimalinha.Offset(32, 2).Value = TextBox1.Text

    ...

    por

    ultimalinha.Offset(, 1).Value = TextBox1.Text

    ultimalinha.Offset(, 2).Value = TextBox2.Text

    ...


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

    terça-feira, 12 de junho de 2012 22:41
    Moderador