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 para Excel com formatação

    Compartilhe

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher em 2/9/2017, 12:03

    Boa tarde.

    Quero exportar uma consulta para Excel com formatação, achei um código aqui no fórum e adaptei, mas faltam algumas coisas.
    No VBA do Access eu faço algumas coisas, mas no VBA do Excel não sei quase nada.

    Está funcionando:
    Exporta para Excel
    Cor do preenchimento da primeira linha verde.
    Cor da fonte da primeira linha branca.

    Mas eu queria:
    As bordas pintadas de preto
    A largura das colunas ajustadas com o texto
    A soma de alunos na última linha

    Desde já agradeço.
    Anexos
    Exportar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (26 Kb) Baixado 7 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Alexandre Neves em 2/9/2017, 16:08

    Boa noite,
    Utilize
    Código:
        Dim ContaAlunos As Integer
    'By JPaulo ® Maximo Access
    Caminho = CurrentProject.Path & "\Alunos.xlsx"
    Dim xls As Object
      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Consulta_alunos", Caminho, True
      Set xls = CreateObject("Excel.Application")
        xls.Workbooks.Open (Caminho)
        xls.Visible = True
        xls.ActiveSheet.Range("A1").Select
        xls.ActiveSheet.Range("A1:D1").Interior.Colorindex = 10
        xls.ActiveSheet.Range("A1:D1").Font.Colorindex = 2
        xls.ActiveSheet.Range("A1:D1").Borders.Colorindex = 0
        xls.ActiveSheet.Range("A1:D1").columns.autofit
        ContaAlunos = DCount("*", "Consulta_Alunos")
        xls.ActiveSheet.cells(ContaAlunos + 2, 1) = "Total de alunos: " & ContaAlunos
       
    xls.ActiveWorkbook.Save
    xls.Application.Quit
    Set xls = Nothing

    Nomeie os controlos de forma normalizada (Comando0 não diz nada mas CmdExportaAlunosExcel já diz)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher em 2/9/2017, 17:35

    Alexandre, muito obrigado pela ajuda, realmente tinha esquecido de renomear o botão.

    Só mais alguns detalhes:

    Gostaria que a primeira linha fosse mesclada, com um título, e a última linha com o total também fosse mesclada.
    Em anexo estão o arquivo em access, e um exemplo do resultado final, como eu queria que ficasse a planilha.
    Anexos
    Exportar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (64 Kb) Baixado 16 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Alexandre Neves em 2/9/2017, 18:14

    Parece tratar-se de trabalho de escola.
    Se sim, não colaboramos para a preguiça dos alunos e inflacionar as notas


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher em 3/9/2017, 04:56

    Não é trabalho escolar, é apenas um exemplo simples para adptar em outros arquivos que eu preciso.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Alexandre Neves em 3/9/2017, 15:14

    Boa noite,
    Código:
    Private Sub CmdExportaAlunosExcel_Click()
        'By JPaulo ® Maximo Access
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código adaptado com a colaboração por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

        Dim ContaAlunos As Integer
        Caminho = CurrentProject.Path & "\Alunos.xlsx"
        Dim xls As Object
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Consulta_alunos", Caminho, True
        Set xls = CreateObject("Excel.Application")
        xls.Workbooks.Open (Caminho)
        xls.Visible = True
        xls.ActiveSheet.Range("A1").Select
        xls.ActiveSheet.Range("A1:D1").Borders.Colorindex = 0
        xls.ActiveSheet.Range("A1:D1").Columns.autofit
       
        xls.ActiveSheet.Range("A1").EntireRow.Insert
        xls.ActiveSheet.Range("A1") = "Notas finais"
        xls.ActiveSheet.Range("A1:D2").Font.Colorindex = 2
        xls.ActiveSheet.Range("A1:D2").Interior.Colorindex = 10
       
        xls.ActiveSheet.Range("A1:D1").merge
        xls.ActiveSheet.Range("A1").HorizontalAlignment = xlCenter
        ContaAlunos = DCount("*", "Consulta_Alunos")
        xls.ActiveSheet.Range(xls.ActiveSheet.Cells(ContaAlunos + 3, 1), xls.ActiveSheet.Cells(ContaAlunos + 3, 4)).merge
        xls.ActiveSheet.Cells(ContaAlunos + 3, 1).Font.Colorindex = 2
        xls.ActiveSheet.Cells(ContaAlunos + 3, 1).Interior.Colorindex = 10
        xls.ActiveSheet.Cells(ContaAlunos + 3, 1).Font.Colorindex = 2
        xls.ActiveSheet.Cells(ContaAlunos + 3, 1) = "Total de alunos: " & ContaAlunos
        xls.ActiveWorkbook.Save
        xls.Application.Quit
        Set xls = Nothing
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher em 3/9/2017, 16:41

    Boa noite Alexandre, mais uma vez obrigado pela ajuda.

    Está quase funcionando, mas o título não fica centralizado.

    Na linha de comando:

    xls.ActiveSheet.Range("A1").HorizontalAlignment = xlCenter


    Acontece o seguinte erro:

    Erro em tempo de execução '1004'
    Não é possível definir a propriedade HorizontalAlignment da classe Range
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6391
    Registrado : 05/11/2009

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Alexandre Neves em 4/9/2017, 02:59

    Bom dia,
    Marque a referência do Microsoft Excel 15.0


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher em 4/9/2017, 07:06

    Bom dia

    Marquei no VBA  do Excel a referência Microsoft Office 15.0 Object Library, mas continua com o erro.
    Quando coloco esse código diretamente no Excel, funciona, mas o mesmo comando no Access para o Excel, ocorre o erro.

    Teacher
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 22/06/2014

    Re: [Resolvido] Exportar para Excel com formatação

    Mensagem  Teacher Hoje à(s) 07:32

    Bom dia.

    Resolvido, obrigado.

      Data/hora atual: 20/9/2017, 20:31