• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

André Parreira

incrementar dados no excel

8 mensagens neste tópico

Boas

eu  já consegui fazer o programa onde  consigo guardar dados no excel alterar.

mas agora no fim quando fui analisar tudo deu.me 4 erros já quando o programa estava em execução

neste momento apenas vou dizer 1 deles para não massacar muito e porque sei que a outras pessoas com duvidas.

E quando incremento dados no excel por uma text box.

 excel.Range("B" & controlo).Value = txtboxidade.Text

ele incrementa tudo bem, com o código abaixo consigo abrir a folha excel e fechar

 
    Private Sub btver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btver.Click
        btfechar.Visible = True
        btver.Visible = False
        excel.Visible = True
    End Sub

    Private Sub btfechar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btfechar.Click



        Dim sair As Process
        For Each sair In Process.GetProcesses()

            If sair.ProcessName.ToLower() = "excel" Then
                sair.Kill()
            End If
        Next
        btfechar.Visible = False
        btver.Visible = True
    End Sub

Mas depois quando volto a incrementar dados ele da-me este erro.

O servidor de RPC não está disponível. (Excepção de HRESULT: 0x800706BA)

na linha de código

 excel.Range("A" & controlo).Value = txtboxnome.Text

Espero ter sido explicito

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tu metes fechar "sair.Kill()" matas o processo logo nao podes fazer um increment a algo que ja esta fechado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hum ja tou a ver..

Podias dar um link ou sugestao como possa fazer..

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e ainda outra questão..imagina que tas com um excel importante aberto..... nao sei se a melhor solução passa por fazer o kill de todos processos excel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podia fazer por exemplo

excel.visible=false( assim apenas ele não era visivel)

Como ele guarda sempre, vai guardando a medida que introduzo qualquer informação

Para não ficar com folhas de excel abertas, quando o utilizador quiser sair, logo faz o kill.

É uma boa alternativa??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exemplo

Private Sub NAR(ByVal o As Object)
    Try
      System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
    Catch
    Finally
      o = Nothing
    End Try
  End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim oApp As New Excel.Application()
    Dim oBooks As Excel.Workbooks = oApp.Workbooks
    Dim oBook As Excel.Workbook = oBooks.Add
    Dim oSheet As Excel.Worksheet = oApp.ActiveSheet

    NAR(oSheet)
    oBook.Close(False)
    NAR(oBook)
    NAR(oBooks)
    oApp.Quit()
    NAR(oApp)

    Debug.WriteLine("Sleeping...")
    System.Threading.Thread.Sleep(5000)
    Debug.WriteLine("End Excel")
End Sub

Retirado de http://support.microsoft.com/default.aspx?scid=KB;EN-US;q317109

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora