web-dev-qa-db-fra.com

macro - ouvre tous les fichiers d'un dossier

Je veux ouvrir tous les fichiers dans un dossier spécifié et avoir le code suivant

Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1 Planning
           Department\Marks Tracker\Quality Control Reports"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
Loop
End Sub

Le problème que j'ai, c'est qu'il continue d'essayer d'ouvrir le premier fichier du dossier à plusieurs reprises et ne continuera pas. Quelqu'un peut-il m'aider, je suis un peu novice chez VBA et je pourrais vraiment faire avec de l'aide. J'essaie d'ouvrir environ 30 rapports qui sont tous au format .xlsx. Merci d'avance.

14
Ross McLaughlin

Vous devez ajouter cette ligne juste avant loop

    MyFile = Dir
Loop
26
Siddharth Rout

Vous pouvez utiliser Len(StrFile) > 0 dans l'instruction de vérification de boucle!

Sub openMyfile()

    Dim Source As String
    Dim StrFile As String

    'do not forget last backslash in source directory.
    Source = "E:\Planning\03\"
    StrFile = Dir(Source)

    Do While Len(StrFile) > 0                        
        Workbooks.Open Filename:=Source & StrFile
        StrFile = Dir()
    Loop
End Sub
2
josef

Essayez le code ci-dessous:

Sub opendfiles()

Dim myfile As Variant
Dim counter As Integer
Dim path As String

myfolder = "D:\temp\"
ChDir myfolder
myfile = Application.GetOpenFilename(, , , , True)
counter = 1
If IsNumeric(myfile) = True Then
    MsgBox "No files selected"
End If
While counter <= UBound(myfile)
    path = myfile(counter)
    Workbooks.Open path
    counter = counter + 1
Wend

End Sub
1
Satish