Galera,
Estou usando um script para fazer download via FTP retirado desse site: http://www.ambienteoffice.com.br/office ... _arquivos/
Ele funciona e já até coloquei em pratica. Mas hoje descobri uma especie de BUG. EX:
Meu script baixa uma arquivo via FTP no formato CSV, e dentro do CSV esta escrito "v1.5". Hoje eu alterei esse arquivo .CSV, coloquei um que dentro esta escrito "v1.6", mas o script só baixa o antigo. Minha duvida é, será que ele armazenou esse o arquivo antigo em alguma especie do cookeis ou arquivo temporario ou cache... Sei lá, talvez eu tenha que limpar cache ou cokie antes de executar esse codigo?
#If VBA7 Then
Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr _
, ByVal szURL As String _
, ByVal szFileName As String _
, ByVal dwReserved As LongPtr _
, ByVal lpfnCB As LongPtr) As Long
#Else
Public Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long _
, ByVal szURL As String _
, ByVal szFileName As String _
, ByVal dwReserved As Long _
, ByVal lpfnCB As Long) As Long
#End If
Private Function DownloadArquivo(sURL As String, sDestino As String) As Boolean
Dim l As Long
l = URLDownloadToFile(0, sURL, sDestino, 0, 0)
If l = 0 Then DownloadArquivo = True
End Function
Function Verificar_VERSAO()
Dim sURL As String
Dim sDestino As String
Dim blSucesso As Boolean
Dim Arquivo As String
Dim versao As String
'Altere as informações abaixo de acordo com sua necessidade
sURL = "http://welton.site90.com/PAP_Versao/VERSAO.csv"
sDestino = ThisWorkbook.Path & "VERSAO.csv"
'Baixa o arquivo da internet e verifica se não houve erro
blSucesso = DownloadArquivo(sURL, sDestino)
If Not blSucesso Then
MsgBox "Erro ao se conectar com Servidor FTP!" _
, vbCritical _
, "Erro!"
End If
'Salva o texto que esta dentro do arquivo .csv em uma variável
Arquivo = ThisWorkbook.Path & "/VERSAO.csv"
Open Arquivo For Input As 1
Line Input #1, versao
Close #1
'Apaga arquivos temporarios
If Dir(Arquivo) <> "" Then Kill (Arquivo)
'Verifica se a versão da planilha é a atual
If Sheets("Parametros").Range("C31").Value <> versao Then
If MsgBox("ATENÇÃO: Uma nova versão da PAP esta disponivel, " & _
"deseja atualizar agora?" & vbNewLine & vbNewLine & _
"Versão Atual: " & Sheets("Parametros").Range("C31").Value & vbNewLine & _
"Versão Nova: " & versao, vbYesNo, "ATUALIZAÇÃO DISPONIVEL") = vbYes Then
MsgBox "ok!, estou desenvolvendo"
Else
MsgBox "Você optou por não atualizar agora, portanto a planilha " & _
"ficará disponivel apenas para CONSULTAS.", vbExclamation
End If
End If
End Function
Fui Util? Click na "Mãozinha" ali do lado >>>> e agradeça.
Postado : 13/02/2015 12:27 pm