Boas. tenho o código abaixo que funciona muito bem.
só queria tentar melhorar uma coisa. o formato dos meus campos é mmmm/yyyy (Julho/2012) e quando transfiro tenho sempre que fazer a formatação da célula posteriormente e manual. ele fica (1/7/2012).
através do construtor de macros, tenho:
Range("A6:A30").Select
Selection.NumberFormat = "mmmm/yyyy"
mas não consegui achar onde introduzir no código.
as planilhas que necessitam formatação são as duas grifadas em amarelo na imagem em anexo.
O Código:
Public Sub CriaExcelComCab()
'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 = "Y:\SisPvt\ResumoAtendimentos.xls" 'diretorio completo do ficheiro
xls.Workbooks.Open (strLivro)
xls.Visible = True
strSQL = "SELECT * FROM TblPlanilhasExcel;"
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
Dim i As Integer
Dim iNumCols As Integer
iNumCols = Rst1.Fields.Count
For i = 1 To iNumCols
xls.cells(5, i).Value = Rst1.Fields(i - 1).Name
xls.cells(5, i).Font.Bold = True
xls.cells(5, i).EntireColumn.autofit
Next
xls.ActiveCell.CopyFromRecordset Rst1
rst.MoveNext
Loop
End With
rst.Close
Rst1.Close
xls.ActiveWorkbook.Save
xls.Application.Quit
Set xls = Nothing
End Sub
obrigado
só queria tentar melhorar uma coisa. o formato dos meus campos é mmmm/yyyy (Julho/2012) e quando transfiro tenho sempre que fazer a formatação da célula posteriormente e manual. ele fica (1/7/2012).
através do construtor de macros, tenho:
Range("A6:A30").Select
Selection.NumberFormat = "mmmm/yyyy"
mas não consegui achar onde introduzir no código.
as planilhas que necessitam formatação são as duas grifadas em amarelo na imagem em anexo.
O Código:
Public Sub CriaExcelComCab()
'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 = "Y:\SisPvt\ResumoAtendimentos.xls" 'diretorio completo do ficheiro
xls.Workbooks.Open (strLivro)
xls.Visible = True
strSQL = "SELECT * FROM TblPlanilhasExcel;"
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
Dim i As Integer
Dim iNumCols As Integer
iNumCols = Rst1.Fields.Count
For i = 1 To iNumCols
xls.cells(5, i).Value = Rst1.Fields(i - 1).Name
xls.cells(5, i).Font.Bold = True
xls.cells(5, i).EntireColumn.autofit
Next
xls.ActiveCell.CopyFromRecordset Rst1
rst.MoveNext
Loop
End With
rst.Close
Rst1.Close
xls.ActiveWorkbook.Save
xls.Application.Quit
Set xls = Nothing
End Sub
obrigado