Notifications
Clear all

Erro em obter dados externos

4 Posts
2 Usuários
0 Reactions
1,097 Visualizações
(@sauloed90)
Posts: 7
Active Member
Topic starter
 

Bom dia,
(Tentei resumir o máximo possível a situação) Creio que seja simples resolver esta, mas como ainda sou um turista quando se trata de VBA não consigo resolver.

Resumo: Todo dia uma planilha é extraída e salva em formato .csv com o nome "Consolidado" seguido data da extração, por exemplo, hoje foi salva assim "Consolidado 05-01". A minha macro só precisa obter os dados dessa planilha que é salva sempre no mesmo local no servidor.

Problema: Ela está depurando com erro 1004, tenho uma leve idéia de que é porque ela não está reconhecendo o zero à esquerda no nome da planilha. Pois no mês passado, a partir do dia 22/12, quando comecei a rodar a macro, nunca teve esse problema. Só a partir desse ano é que começou a depurar. Por isso, acho que o problema está na variável String ou Integer.
Desde já agradeço, tenham todos um bom dia e um ótimo 2013.
Segue abaixo o código da programação.

Sub Organizando_Planilha()
' Atalho do teclado: Ctrl+Shift+G

Dim ul As String
Dim DIA As String
Dim MES As Integer

Sheets("Filas Encaminhadas").Select

DIA = Day(Now())
MES = Month(Now())

    Sheets("Filas Encaminhadas").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;\Btgo3015centro_solucoes$OUVIDORIACOESAULO EDUARDORelatóriosConsolidado " & DIA & "-" & MES & ".csv" _
        , Destination:=Range("$A$1"))
        .Name = "Consolidado " & DIA & "-" & MES
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
 
Postado : 05/01/2013 6:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente a seguinte alteração:

na declaraçao da variavel MES mude de integer para string (para poder formatar o numero com o zero na frente)
e na definição altere conforme abaixo :
Obs.: Alterei de Now() para Date, mas pode ser qq uma das duas)

    Dim ul As String
    Dim DIA As String
    Dim MES As String

    'Sheets("Filas Encaminhadas").Select
    DIA = Format(Day(Date), "00")
    MES = Format(Month(Date), "00")
 
Postado : 05/01/2013 7:11 am
(@sauloed90)
Posts: 7
Active Member
Topic starter
 

Perfeito! A macro já está buscando os dados automaticamente.

Muitíssimo obrigado, Reinaldo. Feliz 2013.

 
Postado : 05/01/2013 7:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Talvez uma outra forma..

sub M_snb()
  workbooks.open "\Btgo3015centro_solucoes$OUVIDORIACOESAULO EDUARDORelatóriosConsolidado " & format(date,"dd-mm") & ".csv"
end sub
 
Postado : 05/01/2013 10:20 am