Veja se desta forma atende, digitando apenas a data em A1:
Sub Macro1()
d = Day(Range("A1"))
m = Month(Range("A1"))
y = Right(Year(Range("A1")), 2)
If Len(d) = 1 Then
d = "0" & d
End If
If Len(m) = 1 Then
m = "0" & m
End If
With ActiveSheet.QueryTables.Add(Connection:="URL; http://www.liffe.com/data/dcfs" & y & m & d & ".txt", Destination:=Range("A2"))
.Name = "dcfs" & y & m & d
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Edson, meu caro, funcionou perfeitamente. Estou muito contente por ter ingressado no site.
Muito Obrigado.
Se não for pedir muito, gostaria de saber como posso solucionar três probleminhas. Não são graves, mas acredito que você possa saber contorná-los.
1º Quando eu insiro uma data não válida, como um sábado (25/06/2011), ou um dia em que é feriado, ele retorna uma msgbox de erro. Gostaria que não retornasse tal erro e sim, apenas, 0 ou "".
2º quando mudo a data e executo a data novamente, o excel insere uma nova coluna com os dados.
Gostaria que o excel substitui-se os dados existentes (da última data pesquisada) pelos dados da nova data.
3º Há como fazer com que o excel separe os dados com tabulação (TAB) para diferentes colunas. Consigo fazer isso com esquerda e direita, mas há uma maneira mais fácil com macros.
Mas são só detalhes. De resto meu xapa, só tenho a agradecê-lo. Valeu.
Um abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 03/07/2011 10:31 am