MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]exportar de especifica planilha para determinada celula especifica

    Compartilhe

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Qua 14 Maio 2014, 15:22

    salve a selva!

    tenho a seguinte rotina (JPAULO) onde exporta de determinada tabela para determinada planilha e celula

    Crie uma tabela com a seguinte estrutura e escreva lá dentro o nome das consultas, para que sheet vão e para que celula vão;

    TabelaDasConsultas ID Consulta Folha Celula
    1 Query1 Sheet1 D5
    2 Query2 Sheet2 A2



    Public Sub CriaExcel()
    'By JPaulo ® Maximo Access
    Dim strLivro As String, xls As Object
    Dim db As DAO.Database
    Dim rst, Rst1 As DAO.Recordset
    Dim strSQL, strSQL1 As String
    Dim x As String
    Dim y As String
    Dim z As String
    Set db = CurrentDb
    Set xls = CreateObject("Excel.Application")
    strLivro = "C:\teste.xls" 'diretorio completo do ficheiro
    xls.Workbooks.Open (strLivro)
    xls.Visible = True

    strSQL = "SELECT * FROM TabelaDasConsultas;"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    With rst
    .MoveFirst
    Do Until .EOF
    z = rst.Fields.Item(1) 'nome da consulta na tabela
    x = rst.Fields.Item(2) 'nome do sheet na tabela
    y = rst.Fields.Item(3) 'nome da celula na tabela
    strSQL1 = z
    Set Rst1 = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset)
    xls.Worksheets(x).Activate
    xls.ActiveSheet.Range(y).Select
    xls.ActiveCell.CopyFromRecordset Rst1
    rst.MoveNext

    Loop
    End With
    rst.Close
    Rst1.Close
    xls.ActiveWorkbook.Save
    xls.Application.Quit
    Set xls = Nothing
    End Sub

    funciona perfeitamente, gostaria de saber se tem como variar tambem a planilha onde os dados serão exportados

    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  chsestrem em Qua 14 Maio 2014, 15:37

    Bom dia Giba,

    Sua pergunta ficou um pouco confusa.

    Quando se refere a planilha?

    É o arquivo Excel ? ou a folha dentro do arquivo Excel?

    Se for para variar o Arquivo Excel, coloque a variável "strLivro" dentro da chamada Sub, e comente

    a linha ----> strLivro = "C:\teste.xls" 'diretorio completo do ficheiro


    Ex:

    De:

    Public Sub CriaExcel()

    Para:

    Public Sub CriaExcel(strLivro as String)


    Crie uma TExtbox para incluir o diretório, ou crie mais um campo na sua tabela com o caminho

    completo do Arquivo Excel.

    e no evento da chamada:


    CriaExcel me.TextBox  'Assim você define qual planilha quer gravar as consultas


    Sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Qua 14 Maio 2014, 19:38

    obrigado pelo retorno! fui dar uma lida no texto e de fato ficou confuso
    peço desculpa e esclareço

    tenho varias consultas que serão exportadas para o excel em determindas guias e determinadas celulas
    a tabela criada sob o script que colei funciona perfeitamente quando utilizo apenas uma planilha

    quero utilizar varias planilhas ou seja:

    C:\teste.xls
    C:\teste2.xls
    C:\teste3.xls

    acredito que tenha como inserir outro campo na tabela das consultas com o endereço e o nome da planilha
    a duvida maior é como ficaria essa parte do código onde receberia o dado da tabela

    strLivro = "C:\teste.xls" 'diretorio completo do ficheiro

    agradeço a ajuda

    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  chsestrem em Qua 14 Maio 2014, 21:58

    Considerando que você inclua um campo com o endereço completo do Arquivo,

    talvez funcione com o Loop antes da abertura do Objeto Excel.

    Teste ai:

    Código:

    Public Sub CriaExcel()
    'By JPaulo ® Maximo Access
    Dim strLivro As String, xls As Object
    Dim db As DAO.Database
    Dim rst, Rst1 As DAO.Recordset
    Dim strSQL, strSQL1 As String
    Dim x As String
    Dim y As String
    Dim z As String
    Set db = CurrentDb

    '''Considerando que você criou um campo na sua consulta ---CaminhoDaPanilha

    strSQL = "SELECT * FROM TabelaDasConsultas;"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    With rst
    .MoveFirst
    Do Until .EOF

    Set xls = CreateObject("Excel.Application")
    strLivro = !CaminhoDaPlanilha  'Pegando o caminho pelo Recordset '"C:\teste.xls" 'diretorio completo do ficheiro

    xls.Workbooks.Open (strLivro)

    xls.Visible = True


    z = rst.Fields.Item(1) 'nome da consulta na tabela
    x = rst.Fields.Item(2) 'nome do sheet na tabela
    y = rst.Fields.Item(3) 'nome da celula na tabela

    strSQL1 = z

    Set Rst1 = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset)
    xls.Worksheets(x).Activate
    xls.ActiveSheet.Range(y).Select
    xls.ActiveCell.CopyFromRecordset Rst1

    rst.MoveNext

    xls.ActiveWorkbook.Save
    xls.Application.Quit
    Set xls = Nothing

    Loop

    End With

    rst.Close
    Rst1.Close

    End Sub

    Sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Qui 15 Maio 2014, 12:33

    apenas uma pergunta, quando vc fala

    '''Considerando que você criou um campo na sua consulta ---CaminhoDaPanilha

    achei que o campo CaminhoDaPlanilha tivesse que ser criado na TabelaDasConsultas, consequentemente o strLivro receberia o caminho completo da planilha que receberia os dados

    o raciocinio está correto?
    ou entendi errado

    obrg.

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Qui 15 Maio 2014, 14:13

    algo assim!

    criando um campo caminho na TabelaDasConsultas


    Dim strLivro As String, xls As Object
    Dim db As DAO.Database
    Dim rst, Rst1 As DAO.Recordset
    Dim strSQL, strSQL1 As String
    Dim x As String
    Dim y As String
    Dim z As String
    Dim w As String
    Set db = CurrentDb
    Set xls = CreateObject("Excel.Application")
    strLivro = rst.Fileds.Item(4)
    xls.Workbooks.Open (strLivro)
    xls.Visible = True

    strSQL = "SELECT * FROM TabelaDasConsultas;"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    With rst
    .MoveFirst
    Do Until .EOF
    z = rst.Fields.Item(1) 'nome da consulta na tabela
    x = rst.Fields.Item(2) 'nome do sheet na tabela
    y = rst.Fields.Item(3) 'nome da celula na tabela
    w = rst.Fields.Item(4) 'nome caminho da planilha
    strSQL1 = z
    Set Rst1 = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset)
    xls.Worksheets(x).Activate
    xls.ActiveSheet.Range(y).Select
    xls.ActiveCell.CopyFromRecordset Rst1
    rst.MoveNext

    Loop
    End With
    rst.Close
    Rst1.Close
    xls.ActiveWorkbook.Save
    xls.Application.Quit
    Set xls = Nothing

    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  chsestrem em Qui 15 Maio 2014, 14:22

    Sim está correto,

    O campo é na tabela mesmo, eu que acabei falando em consulta.


    Crie o Campo na Tabela e teste o módulo que te enviei primeiro.

    sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Qui 15 Maio 2014, 18:21

    vou testar em breve retorno! valeu

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Sex 16 Maio 2014, 13:05

    bom dia!

    testei e apresentou a seguinte mensagem

    erro em tempo de execução 3265

    item não encontrado nessa coleção

    parou na linha : strLivro = !CaminhoDaPlanilha  'Pegando o caminho pelo Recordset '"C:\teste.xls" 'diretorio completo do ficheiro

    tenho pensado mais ou menos assim

    ID Consulta Folha Celula CaminhoDaPanilha
    1 consulta1 plan1 B5 C:\teste2.xls
    2 consulta2 plan2 B5 C:\teste.xls

    obrg.

    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  chsestrem em Sex 16 Maio 2014, 13:35

    Bom dia Atente para os nomes,

    Erro típico de nomeclatura.

    CaminhoDaPanilha ou CaminhoDaPlanilha

    Foi erro de postagem ou você criou o Campo assim?

    Sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    giba_
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 01/02/2011

    Re: [Resolvido]exportar de especifica planilha para determinada celula especifica

    Mensagem  giba_ em Sex 16 Maio 2014, 14:19

    O erro foi meu
    digitei o campo errado!
    Testei e funcionou perfeitamente.



    valeu pela dica, aprendi muito

    abs!

      Data/hora atual: Dom 04 Dez 2016, 01:54