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:
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
- Dados.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (110 Kb) Baixado 15 vez(es)