Ir ao conteúdo
  • Cadastre-se

Excel vba_abrir arquivo excel mais atual em pasta


Posts recomendados

Olá pessoal ! 

 Alguem poderia me ajudar com o  seguinte caso ?

 Com o código abaixo eu salvo um arquivo excel, em uma determinada pasta.

 

     Dim filePathName As String
    filePathName = rootPath1 & "\" & "Hardware Plan" & ".xlsm"
    If Dir(filePathName) = "" Then
        ActiveWorkbook.SaveCopyAs filePathName
    Else
        filePathName = rootPath1 & "\" & "Hardware Plan" & "_" & Format(Now(), "yyyymmwwddhhmmss") & ".xlsm"
        ActiveWorkbook.SaveCopyAs filePathName
    End If

 

Depois com um outro arquivo eu tenho que que abrir esse arquivo mais atual salvo mas não estou conseguindo fazer isso.

Poderiam me ajudar com um codigo que abre a planilha mais atual (filePathName = rootPath1 & "\" & "Hardware Plan" & "_" & Format(Now(), "yyyymmwwddhhmmss") & ".xlsm") dentro da pasta?

 

Obrigado pessoal !

Link para o comentário
Compartilhar em outros sites

@Ismael Souza Boas experimente algo deste género.

Ps. Modifique a linha onde diz "Insira aqui o caminho da pasta" com o caminho da pasta.

Sub OpenLastModified()

    Dim sFldr As String
    Dim fso As Scripting.FileSystemObject
    Dim fsoFile As Scripting.File
    Dim fsoFldr As Scripting.Folder
    Dim dtNew As Date, sNew As String

    Const sCSVTYPE As String = "Microsoft Office Excel Comma Separated Values File"

    Set fso = New Scripting.FileSystemObject

    sFldr = "Insira aqui o caminho da pasta"

    Set fsoFldr = fso.GetFolder(sFldr)

    For Each fsoFile In fsoFldr.Files
        If fsoFile.DateLastModified > dtNew And fsoFile.Type = sCSVTYPE Then
            sNew = fsoFile.Path
            dtNew = fsoFile.DateLastModified
        End If
    Next fsoFile

    Workbooks.Open sNew

End Sub

 

Link para o comentário
Compartilhar em outros sites

Ola @InforMira

 

 Obrigado pela resposta !

Dim fso As Scripting.FileSystemObject

 

 Nessa definição, está aparecendo uma mensagem que que o tipo definição não foi definido

 

Sendo abaixo o código completo :

 


 

Sub AbrirPainel()

        Dim dia As String
            dia = Format(Day(Date), "00")
            Dim mes As String
            mes = UCase(Format(Date, "MMMM"))
            mes1 = Month(Date)
            Dim ano As String
            ano = Year(Date)
            
            Dim tgtDay As Integer
             Dim DayName As Variant
             
            tgtDay = Weekday(Date, [vbSunday])
            
            Select Case tgtDay
             Case 1
                Case 2
                 Dim DDS As String
                  DDS = "MONDAY"
                   DayName = DDS
                  
                         Case 3
                          Dim DDT As String
                           DDT = "TUESDAY"
                             DayName = DDT
                            
                                  Case 4
                                   Dim DDQ As String
                                    DDQ = "WED"
                                      DayName = DDQ
                                           Case 5
                                            Dim DDQT As String
                                             DDQT = "THURSDAY"
                                               DayName = DDQT
                                                     Case 6
                                                      Dim DDST As String
                                                       DDST = "FRIDAY"
                                                         DayName = DDST
                                                       
                                                             Case 7
                                                              Dim DDSB As String
                                                               DDSB = "SATURDAY"
                                                                 DayName = DDSB
                                                    
              
                End Select
            
        
                Dim semana As Variant
                semana = WorksheetFunction.IsoWeekNum(Date)
                
                 Dim PathTgt As Variant
                
                  PathTgt = ano & "\" & mes1 & ". " & mes & "\W" & semana & "\" & dia
                  
                                    Dim sFldr As String
                                    Dim fso As Scripting.FileSystemObject
                                    Dim fsoFile As Scripting.File
                                    Dim fsoFldr As Scripting.Folder
                                    Dim dtNew As Date, sNew As String
                                    
                                    Const sCSVTYPE As String = "Microsoft Office Excel Comma Separated Values File"
                                    
                                    Set fso = New Scripting.FileSystemObject
                                    
                                    sFldr = "\\105.103.12.249\OQC\11. PLANOS DIÁRIOS\3. PAINEL DE DEMANDA\" & PathTgt
                                    
                                    Set fsoFldr = fso.GetFolder(sFldr)
                                    
                                    For Each fsoFile In fsoFldr.Files
                                    If fsoFile.DateLastModified > dtNew And fsoFile.Type = sCSVTYPE Then
                                    sNew = fsoFile.Path
                                    dtNew = fsoFile.DateLastModified
                                    End If
                                    Next fsoFile
                                    
                                    Workbooks.Open sNew
                
                
                        Dim wbk As Workbook
                          Set wbk = ActiveWorkbook
                        
                                With wbk
                        
                                    Sheets("PAINEL DEMANDA").Select
                                    ActiveSheet.combobox1.Text = DayName
                                    
                                    
                                    
                                End With
                            
                            
                            
                            
                  End Sub

 

Como posso resolver isso?

 

Obrigado mais uma vez pela ajuda ! grande ajuda !

  

Erro: Tipo definido pelo usuário não definido

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...