MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

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
    avatar
    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
    avatar
    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
    avatar
    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.
    avatar
    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: Sex 18 Ago 2017, 17:21