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.
Vous devez ajouter cette ligne juste avant loop
MyFile = Dir
Loop
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
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