none
Alterar dados em uma planilha do excel, usando VBA no Access. RRS feed

  • Pergunta

  • Eu tenho uma planilha padrão no excel, onde eu precisaria alterar alguns campos delas com dados de uma tabela do access.

    Como faço através de VBA, usar esses dados da minha tabela pra jogar as informações na planilha do excel?

    Obrigado!
    quinta-feira, 18 de fevereiro de 2010 13:26

Respostas

  • No menu Ferramentas > referências, assinale Microsoft Excel Object Library.

    Para acessar o conteúdo, faça assim:

    Dim oWkb As Excel.Workbook
    Dim oWks As Excel.Worksheet

    Set oWkb = GetObject ("c:\TuaPasta\TuaPlan.xls")

    Set oWks = oWkb.Worksheets("plan1")

    oWks.Range("A2").Value = teu valor




    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    • Marcado como Resposta rmaragno quinta-feira, 4 de março de 2010 13:15
    quinta-feira, 4 de março de 2010 03:04
    Moderador

Todas as Respostas

  • Olá....
    Será mais fácil fazer ao contrário....Alterar ou visualizar dados do access usando vba no excel....

    Seria assim:
    No menu Ferramentas do Editor selecione a opção referências e inclua a biblioteca de acesso a dados ADO no projeto. Sem isto não teremos acesso aos objetos de acesso a dados.
    Selecione Microsoft activex data objects 2.8 library

    Private Sub ConexaoBD()

    Dim sql As String
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim i As Integer

    'define a conexão com o banco de dados Northwind.mdb
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SeuBanco.mdb"
    cn.Open

    'define um novo objeto recordset
    Set rs = New ADODB.Recordset

    'define a instrução sql
    sql = "SELECT * from SuaTabela"


    'gera o recordset para o sql sobre a conexao definida
    rs.Open sql, cn

    'define o cabeçalho das células no excel
    For i = 0 To rs.Fields.Count - 1
        Cells(1, i + 1) = rs.Fields(i).Name
    Next

    i = 2
    If Not rs.EOF Then
         Do While Not rs.EOF
            Range("A" & i).Value = rs(0)
            Range("B" & i).Value = rs(2)
            Range("C" & i).Value = rs(1)
            rs.MoveNext
            i = i + 1
        Loop
    End If
    cn.Close
    End Sub

    Isso fazendo no excel....
    Se solucionar marque como respondida..

    quinta-feira, 18 de fevereiro de 2010 17:04
  • pois é...  pelo contrário eu já vi alguns jeitos de se fazer, mas nunca vi dessa forma ae....

    o que acontece, é que todo meu banco de dados do trabalho está em access, e preciso acessar uma planílha do excel...

    e como já está tudo em formulários para os usuários aqui, não seria prático fazer o contrário!

    não sei se estou conseguindo explicar direito o que preciso....


    quinta-feira, 18 de fevereiro de 2010 17:36
  • Não acho que um jeito seja mais fácil ou mais difícil que o outro.

    Porém, é necessário ter conhecimento de VBA para fazer isto. Use código ADO para manipular as tabelas do Access a partir do Excel.

    Se você tem algum conhecimento de VBA, poste aqui ao menos o código que está tentando fazer funcionar, caso contrário fica difícil ajudar sem ter que fazer todo o trabalho.

    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    sábado, 27 de fevereiro de 2010 00:16
    Moderador
  • Sub Arquiva_e_Zera()

    Dim DB As Database
    Dim tabela As Recordset
    Dim tabela2 As Recordset

    Set DB = CurrentDb
    Set tabela = DB.OpenRecordset("Tb_temp")
    Set tabela2 = DB.OpenRecordset("Tb_Arquivo")

    ai não sei se abro a planilha como um objeto?
    tipo:
    dim objeto as object
    set objeto = opendatabase ("C:\Controles\Pgto.xls")

    sei que tenho essa planilha de Pgto e queria que por exemplo:

     sheets("plan1").range("A" & 2) = tabela!Sit

    eu não sei como colocar ai em cima.. coloquei como faço pra chamar um campo do access e como faço pra chamar no excel...

    decampos que o campo A2 da Plan1 do excel precisa receber do campo "Sit" do access.
    quarta-feira, 3 de março de 2010 15:08
  • No menu Ferramentas > referências, assinale Microsoft Excel Object Library.

    Para acessar o conteúdo, faça assim:

    Dim oWkb As Excel.Workbook
    Dim oWks As Excel.Worksheet

    Set oWkb = GetObject ("c:\TuaPasta\TuaPlan.xls")

    Set oWks = oWkb.Worksheets("plan1")

    oWks.Range("A2").Value = teu valor




    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    • Marcado como Resposta rmaragno quinta-feira, 4 de março de 2010 13:15
    quinta-feira, 4 de março de 2010 03:04
    Moderador
  • muitooo obrigado cara!!

    perfeito.

    • Marcado como Resposta rmaragno quinta-feira, 4 de março de 2010 13:15
    • Não Marcado como Resposta rmaragno quinta-feira, 4 de março de 2010 13:15
    quinta-feira, 4 de março de 2010 13:15
  • PESSOAL ESTOU COM UM PROBLEMA GOSTARIA DE SABER COMO FAÇO PARA CRIAR EM VBA  NO CASO O MODELO JA TENHO  PARA IMPRIMIR MINHA PLANILHA DO EXCEL EDITADA

     

    NO CASO QUERIA CRIAR UM VBA PARA EDITAR OS DADOS DA PLANILHA E IMPRIMILA MAIS SEM MEXER NA POSIÇÃO DO EXCEL ENTENDERÃO M AJUDE POR FAVOR

     

    ME ADD NO MSN MANDO A PLANILHA E O MODELO DO VBA

    PLEASE ME AJUDEM DESESPERADO

     CLAUDINOR_@HTMAIL.COM

    segunda-feira, 7 de fevereiro de 2011 12:36