MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

    [Resolvido]Erro ao exportar consulta para o Excel via VBA

    avatar
    ARIPO
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 112
    Registrado : 09/02/2010

    [Resolvido]Erro ao exportar consulta para o Excel via VBA Empty [Resolvido]Erro ao exportar consulta para o Excel via VBA

    Mensagem  ARIPO 30/3/2021, 23:33

    Boa noite a todos!

    Preciso de ajuda para resolver o problema, sou inexperiente da programação em VBA, preciso exportar os dados de uma consulta para uma planilha do excel
    Estou tentando com esse código, está apresentado o seguinte erro:

    "Erro de compilação: O tipo definido pelo usuário não foi definido" Sub ou Function nao definida

    Segue o codigo e o arquivo:

    Código:
    Sub modExportFile(NmPasta As String, NmArquivo As String, NmTabela As String)

    'Maneira de exportar informações de uma tabela – ou consulta – existentes no Access para o formato .xls – Excel.
    'https://ef3cinco.wordpress.com/2011/09/22/como-exportar-informacoes-para-o-excel-usando-vba-access/
     
        Dim strPasta As Object '"Setar" objeto do sistema
        Set strPasta = VBA.CreateObject("Scripting.FileSystemObject")
     
            Dim hrBegin As Date
            hrBegin = Now() 'Início do processo
            DoCmd.Hourglass (True) 'Ampulhete true
     
            Dim strNmPasta As String 'Nome da pasta
            strNmPasta = CurrentProject.Path & "\" & NmPasta 'Vai ficar no mesmo diretório do arquivo Access
     
            Dim strSubPasta As String
            strSubPasta = "\" & Year(Date) & Format(Month(Date), "00") & "_" & _
            MonthName(Month(Date)) 'Nome da sub-pasta: yyyymm_month
     
            If Not strPasta.FolderExists(strNmPasta) Then MkDir strNmPasta 'Caso não exista, criar: Pasta
            If Not strPasta.FolderExists(strNmPasta & strSubPasta) Then MkDir strNmPasta & strSubPasta 'Caso não exista, criar: sub-pasta
     
            Dim strNmArquivo As String 'Apenas o nome do arquivo 'enfeitado': NomeDoArquivo_yyyymmdd_hhmmss
            strNmArquivo = NmArquivo & "_" & Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & _
            "_" & Format(Hour(Time), "00") & Format(Minute(Time), "00") & Format(Second(Time), "00")
     
            Dim strArquivo As String
            strArquivo = strNmArquivo & "_TMP.xls" 'Informa o nome do arquivo temporário
     
            Dim strExportar As String 'Endereço com caminho do file - Folder + File
            strExportar = strNmPasta & strSubPasta & "\" & strArquivo
     
            'Verificar se já existe algum arquivo com o mesmo nome - caso sim, ele substitui
            If strPasta.FileExists(strNmPasta & strSubPasta & "\" & strNmArquivo & ".xls") Then
                On Error Resume Next
                    VBA.Kill strNmPasta & strSubPasta & "\" & strNmArquivo & ".xls"
                If VBA.Err.Number <> 0 Then
                    Call C_MsgErr 'Rotina para mostrar erros
                End If
            End If
     
            'Exportar arquivo, ainda sem formatação
            DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, Consulta_alunos, strExportar, True, NmArquivo
     
            'Conexão e formatação do arquivo excel
            Dim oXLS As New Excel.Application
            Dim oWKB As Workbook
     
            Set oWKB = oXLS.Workbooks.Open(strExportar, False, False) 'Conectar com o arquivo recém-criado
            oWKB.Worksheets(1).Range("A:J").EntireColumn.Font.Name = "Calibri" 'Fonte
            oWKB.Worksheets(1).Range("A:J").EntireColumn.HorizontalAlignment = xlLeft 'Alinhamento
            oWKB.Worksheets(1).Range("A1:J1").Font.Color = vbWhite 'Cor da fonte
            oWKB.Worksheets(1).Range("A:J").Font.Size = 11 'Tamanho da fonte
            oWKB.Worksheets(1).Range("A1:J1").Interior.Color = 2273612 'Cor da fonte
            oWKB.Worksheets(1).Range("A:J").EntireColumn.AutoFit 'Autoredimnesionar
     
            'Mais algumas possibilidades
            'oWKB.Worksheets(1).Range("A1").Cells.Value = "ef3.Cinco" 'Texto do cabeçalho
            'oWKB.Worksheets(1).Range("E:E").EntireColumn.Delete 'Deletar um coluna
            'oWKB.Worksheets(1).Range("AD:AF").EntireColumn.ClearContents 'Apaga o conteúdo, mas mantem as estrutura
            'oWKB.Worksheets(1).Range("F:F").EntireColumn.NumberFormat = "0" 'Formato número
            'oWKB.Worksheets(1).Range("J:K").EntireColumn.NumberFormat = "0.00%" 'Formato porcentagem
            'oWKB.Worksheets(i).Range("S:V").EntireColumn.NumberFormat = "$ #,##0.00" 'Formato monetário
     
            'Fechamento do arquivo temporário do Excel
            oXLS.Visible = False
            oWKB.Save
     
            'Salvar arquivo final, limpo e formatado
            oWKB.SaveAs strNmPasta & strSubPasta & "\" & strNmArquivo & ".xls", xlExcel5, , , False, False
            VBA.Kill (strExportar)
     
            'Fechar conexão com arquivo Excel
            oXLS.Quit
            Set oXLS = Nothing
            Set oWKB = Nothing
     
            Call modClearFolder(strNmPasta & strSubPasta, "xlk") 'Exclusão de possíveis arquivos temporários
            Call C_MsgFim(hrBegin) 'Rotina de finalização com mensagem
            Shell "explorer.exe " & strNmPasta & strSubPasta & "\" & strNmArquivo & ".xls" 'Abrir arquivo Excel
     
    End Sub
    Anexos
    [Resolvido]Erro ao exportar consulta para o Excel via VBA AttachmentDados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (110 Kb) Baixado 10 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Erro ao exportar consulta para o Excel via VBA Empty Re: [Resolvido]Erro ao exportar consulta para o Excel via VBA

    Mensagem  Alexandre Fim 30/3/2021, 23:55

    Aripo boa noite,

    Sugiro que vc estude um pouco mais de VBA também e sair copiando e colando código pode gerar mais problemas do que solução.

    O quye vc precisa fazer:

    1 - No código, vá no menu Ferramentas >> Referências e marque a referência "Microsoft Excel 16.0 Object Library" (dependendo da versão do Office que vc estiver usando, pode variar de 14.0, 15.0 e etc.)

    As seguintes linhas de chamada de função também estão com erros, porque as mesmas não se encontram em nenhum módulo que vc mandou:

    Call C_MsgErr 'Rotina para mostrar erros
    Call modClearFolder(strNmPasta & strSubPasta, "xlk") 'Exclusão de possíveis arquivos temporários
    Call C_MsgFim(hrBegin) 'Rotina de finalização com mensagem


    Espero ter ajudado

    Att,






    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    ARIPO
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 112
    Registrado : 09/02/2010

    [Resolvido]Erro ao exportar consulta para o Excel via VBA Empty Re: [Resolvido]Erro ao exportar consulta para o Excel via VBA

    Mensagem  ARIPO 31/3/2021, 00:12

    Boa noite Alexandre!

    Me ajudou sim, como lhe falei sou inexperiente, tente achar o erro mas nao consegui, por esta razão pedia ajuda

    Quanto a referência ela ja esta marcada, e a "Microsoft Excel 14.0 Object Library" e as chamadas "Call" exclui mas
    agora ele da o seguinte mensagem (erro de compilação "Tipo definido pelo usuário não definido") na linha (Dim oXLS As New Excel.Application)

    Me desculpa por alguma coisa, mas acho que não e feio falar que não sabe e pedir ajuda
    mas muito obrigado pelo seu feedback
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Erro ao exportar consulta para o Excel via VBA Empty Re: [Resolvido]Erro ao exportar consulta para o Excel via VBA

    Mensagem  Alexandre Fim 31/3/2021, 00:38

    Aripo,

    Veja se a referência "Microsoft Office 14.0 Object Library" está marcada.

    Na vdd, não é necessário excluir as linhas que dão erro. Apenas comente-as usando o Apóstrofo (') no inicio da linha, porque se houver a necessidade de usar esta linha, apenas remova o apóstrofo.



    Não tem que se desculpar !!!
    Pode ter certeza, quando comecei a programar eu "apanhei" muito....rssss Very Happy Very Happy Very Happy

    Sempre que puder, procure estudar e entender como funciona os procedimentos, funções, declarações de variaveis e etc.
    Este fórum é o lugar certo para buscar o conhecimento.

    boa sorte


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    ARIPO
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 112
    Registrado : 09/02/2010

    [Resolvido]Erro ao exportar consulta para o Excel via VBA Empty Re: [Resolvido]Erro ao exportar consulta para o Excel via VBA

    Mensagem  ARIPO 21/4/2021, 21:13

    Alexandre Fim, boa tarde!

    Conseguiu resolver o problema, era so habilitar a referencia Microsoft Excel 14.0 Object Library

    Muito obrigado pela ajuda

      Data/hora atual: 16/6/2021, 14:29