Ouvrir fichiers avec conditions

Bonjour ,

J'ai trouvé pas mal de code mais je n'arrive pas à adapter.

Je voudrais dans un premier temps parvenir à ouvrir exclusivement des fichiers xlsx, dont le nom contient le mot "moi", et ce trouvant dans le dossier "Details". Et ce, à partir du fichier "Production.xlsm".

Je voudrais en gros ouvrir ces fichiers l'un après l'autre, extraire des données et ensuite refermer pour passer au suivant.

Sub Boucle_Fichiers_Dossier()
'ouvrir à partir de ce fichier tous les fichiers excel se trouvant dans le même répertoire
    Dim Fichier As String, Chemin As String, Wb As Workbook
    Chemin = ThisWorkbook.Path
    Fichier = Dir(Chemin & "\*.xlsx*")
    'boucle pour ouvrir les fichiers excel uniquement
    Do
        If Fichier = "" Then Exit Do
        If Fichier <> "MonFichier.xlsm" Then
            Set Wb = Workbooks.Open(Chemin & "\" & Fichier)
            'suite de la procedure
            MsgBox Fichier & " est ouvert"
            Application.DisplayAlerts = False
            Wb.Close True
            Application.DisplayAlerts = True
            Set Wb = Nothing
        End If
        Fichier = Dir()
    Loop
End Sub

Merci beaucoup.

9testprod.zip (19.00 Ko)

bonjour,

une proposition,

l'ordre dans lequel seront examinés les fichiers dépend du moment de leur création. la recherche se fait dans le sous répertoire détails qui se trouve dans le répertoire du classeur contenant la macro.

Sub BoucleFichiers()
    Dim Chemin As String, Fichier As String, MesFichiers As String
    'Définit le répertoire contenant les fichiers
    Chemin = ThisWorkbook.Path & "\details\"
    'Boucle sur tous les fichiers xls* du répertoire.
    Fichier = Dir(Chemin & "*.xls*")
    liste = False
    Do While Len(Fichier) > 0
        If UCase(Fichier) = "PRODUCTION.XLSM" Then
            liste = True
        ElseIf liste Then
            If Right(Fichier, 4) = "xlsx" And InStr(Fichier, "moi") > 1 Then
                MsgBox Chemin & Fichier
            End If
        End If
        Fichier = Dir()
    Loop
End Sub

Merci beaucoup H2so4 ,

Mais ne fonctionne pas. Premier plantage sur liste= false variable non définie.

Je l'ai déclaré en tant que boolean, idem le code ne fonctionne pas.

Merci quand même, gentil d'avoir répondu.

edit: je viens de comprendre ton code considère que le fichiers production.xlsm est dans le même dossier que les fichiers à traiter. Or ce n'est pas le cas, les fichiers à parcourir se trouvent dans le dossier "Details". Au final le fichier "Production.xlsm" et le dossier "Details" se trouvent dans le dossier "TestProd".

Bonjour,

j'avais mal compris ce que tu voulais dire avec "à partir de production.xlsm"

voici une nouvelle version

Sub BoucleFichiers()
    Dim Chemin As String, Fichier As String, MesFichiers As String
    'Définit le répertoire contenant les fichiers
    Chemin = ThisWorkbook.Path & "\details\"
    'Boucle sur tous les fichiers xlsx du répertoire.
    Fichier = Dir(Chemin & "*.xlsx")
    Do While Len(Fichier) > 0
        If InStr(Fichier, "moi") > 1 Then
            MsgBox Chemin & Fichier
        End If
        Fichier = Dir()
    Loop
End Sub

Mon cher H2So4, c'est parfait exactement le résultat escompté.

1000 mercis. Bonne soirée

Rechercher des sujets similaires à "ouvrir fichiers conditions"