Amigos,
estou tentando importar um arquivo .xls para uma tabela atraves de um codigo VBA, o primeiro campo da tabela é a data realizada.Quando eu abro o arquivo com o código VBA a data muda de formato,ou seja, a data do .xls esta no formato dd/mm/aaaa e ao abrir com o código ele muda para mm/dd/aaaa, desta forma tenho os dados somente até o dia 12 do mês os dias restantes não aparecem, pois ele inverte o que é dia vira mês e vice-versa.
Alguém sabe o que pode estar ocorrendo, já mudei a formatação da tabela e do .xls sem sucesso.
Estou utilizando o codigo abaixo:
Sub Command6_Click()
Dim Xl As Excel.Application
Dim FileName As String
Dim wb As Workbook
Dim rng As Range
Dim LastRow As Long
Dim L As Long
Dim ws As Worksheet
Dim cell As Range
Dim fs As FileSystemObject
Set Xl = New Excel.Application
Xl.DisplayAlerts = False 'desliga os alertas do excel
FileName = Xl.GetOpenFilename ' acesso ao arquivo a ser importado
If FileName = "" Then MsgBox "Escolha o arquivo a ser Importado!", vbCritical, "ATENÇÃO" ' avisa se não escolher arquivo
DoCmd.SetWarnings False ' desliga alertas do sistema
Set wb = Xl.Workbooks.Open(FileName) 'acesso arquivo
Set ws = wb.Worksheets(1) 'escolho sheet
L = 4 'Linha inicial do arquivo
Do While Trim(ws.Range("A" + Trim(Str(L))).Value) <> "" 'contador de linhas do arquivo excel até ficar vazio
L = L + 1 'contador de linhas do arquivo excel
Loop
If L <> 4 Then L = L - 1
L = L - 1 ' TIRO A ULTIMA LINHA
If L = 4 And ws.Range("D4").Value = "" Then
MsgBox "Arquivo não encontrado!!!", vbCritical, "Atenção"
End If
Set cell = ws.Range("A4", "M" + Trim(Str(L))) ' defino o range a ser copiado
cell.Copy ' copio range
DoCmd.SetWarnings False 'desliga os avisos do sistema
DoCmd.OpenTable ("CRED") 'Opens the table
DoCmd.RunCommand acCmdPasteAppend 'Pastes in the worksheet data
DoCmd.Close 'Fecho Tabela
DoCmd.SetWarnings True 'liga os avisos do sistema
wb.Saved = True
wb.Close
Xl.DisplayAlerts = True
Set wb = Nothing 'zera o workbook
Set Xl = Nothing
End Sub
estou tentando importar um arquivo .xls para uma tabela atraves de um codigo VBA, o primeiro campo da tabela é a data realizada.Quando eu abro o arquivo com o código VBA a data muda de formato,ou seja, a data do .xls esta no formato dd/mm/aaaa e ao abrir com o código ele muda para mm/dd/aaaa, desta forma tenho os dados somente até o dia 12 do mês os dias restantes não aparecem, pois ele inverte o que é dia vira mês e vice-versa.
Alguém sabe o que pode estar ocorrendo, já mudei a formatação da tabela e do .xls sem sucesso.
Estou utilizando o codigo abaixo:
Sub Command6_Click()
Dim Xl As Excel.Application
Dim FileName As String
Dim wb As Workbook
Dim rng As Range
Dim LastRow As Long
Dim L As Long
Dim ws As Worksheet
Dim cell As Range
Dim fs As FileSystemObject
Set Xl = New Excel.Application
Xl.DisplayAlerts = False 'desliga os alertas do excel
FileName = Xl.GetOpenFilename ' acesso ao arquivo a ser importado
If FileName = "" Then MsgBox "Escolha o arquivo a ser Importado!", vbCritical, "ATENÇÃO" ' avisa se não escolher arquivo
DoCmd.SetWarnings False ' desliga alertas do sistema
Set wb = Xl.Workbooks.Open(FileName) 'acesso arquivo
Set ws = wb.Worksheets(1) 'escolho sheet
L = 4 'Linha inicial do arquivo
Do While Trim(ws.Range("A" + Trim(Str(L))).Value) <> "" 'contador de linhas do arquivo excel até ficar vazio
L = L + 1 'contador de linhas do arquivo excel
Loop
If L <> 4 Then L = L - 1
L = L - 1 ' TIRO A ULTIMA LINHA
If L = 4 And ws.Range("D4").Value = "" Then
MsgBox "Arquivo não encontrado!!!", vbCritical, "Atenção"
End If
Set cell = ws.Range("A4", "M" + Trim(Str(L))) ' defino o range a ser copiado
cell.Copy ' copio range
DoCmd.SetWarnings False 'desliga os avisos do sistema
DoCmd.OpenTable ("CRED") 'Opens the table
DoCmd.RunCommand acCmdPasteAppend 'Pastes in the worksheet data
DoCmd.Close 'Fecho Tabela
DoCmd.SetWarnings True 'liga os avisos do sistema
wb.Saved = True
wb.Close
Xl.DisplayAlerts = True
Set wb = Nothing 'zera o workbook
Set Xl = Nothing
End Sub