Notifications
Clear all

VBA The file could be corrupted

3 Posts
3 Usuários
0 Reactions
688 Visualizações
(@thaisjoffe)
Posts: 1
New Member
Topic starter
 

Preciso linkar um arquivo xls com o Access e, para que ele atualize sozinho os dados do banco, preciso me livrar de um erro que está dando ao abrir o arquivo: The file and extension of 'nome_do_arquivo' don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it. Do you want to open it anyway?

Quando dou "ok" ele abre normalmente e se eu salvar como, o novo arquivo não dá mais essa mensagem de erro. No entanto, não quero precisar abrir manualmente o arquivo e salva-lo todos os dias só para me livrar desse erro. Tenho que dar um tratamento para ele usando VBA e gostaria de me livrar dessa mensagem de erro via macro. Só não sei como fazer isso. Tentei várias maneiras de abrir o arquivo e várias maneiras de fechar salvando como. O novo arquivo salvo mantém essa mensagem, o que impede o Access de atualizar os dados ao tentar lê-lo.

Meu código se encontra abaixo (deletei o que não interessava para tornar mais fácil a ajuda):
Public Sub Busca()
Dim sFile, dire As String

'tirei o diretório propositalmente aqui para que vocês substituam pelo de vocês
dire = "K:..."
sFile = Dir(dire & "arquivo1.xls")
If sFile <> "" Then
Set wbTransf = Workbooks.OpenXML(dire & sFile)
wbTransf.Close SaveChanges:=True, Filename:=dire & "arquivo2.xls"
Else
MsgBox "GS Report não encontrado"
End If
End Sub

Anexei o arquivo corrompido dentro de um zip. Garanto que ele não contém virus e a fonte é extremamente segura. Desde já, agradeço a ajuda!

 
Postado : 09/04/2018 3:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tudo indica que não é um arquivo Excel, provavelmente .htm ou .xml convertido em xls; porem o mesmo foi gerado/convertido errado. Verifique junto a fonte geradora desse arquivo

Cabecalho do arquivo

<head>
<meta name="Excel Workbook Frameset">
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 15">
<link rel=File-List href=""arquivo1_files/filelist.xml">"
<![if !supportTabStrip]>
<link id="shLink" href=""arquivo1_files/sheet001.htm">"

Erro maior na ausencia da Sheet001.htm

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/04/2018 9:50 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vinda, Thais

De fato seu anexo arquivo1.xls está bugado. Se vc abri-lo num editor de texto como o Bloco de Notas, perceberá que tem só um minúsculo cabeçalho em HTML/XML mal formado seguido de uma script em JavaScript...

De qualquer forma, se sua intenção é abrir um xls e salvar com outro nome mas mantendo a antiga extensão xls, recomendaria as seguintes alterações em seu código:

Public Sub Busca()
  Dim sFile As String, dire As String, wbTransf As Workbook
  'tirei o diretório propositalmente aqui para que vocês substituam pelo de vocês
  dire = "K:..."
  sFile = Dir(dire & "arquivo1.xls")
  If sFile <> "" Then
    Set wbTransf = Workbooks.Open(dire & sFile)
    'Para salvar como xls, use FileFormat:=xlExcel8. Para salvar em xlsx, usar FileFormat = xlOpenXMLWorkbook
    wbTransf.SaveAs Filename:=dire & "arquivo2.xls", FileFormat:=xlExcel8
    wbTransf.Close
  Else
    MsgBox "GS Report não encontrado"
  End If
End Sub

----
Ops, o amigo Reinaldo foi mais rápido e liquidou a fatura já, hehehe

 
Postado : 10/04/2018 9:54 am