Impossible d'ouvrir un fichier xlsx même si Workbooks.Open voit le fichier

Bonjour à tous,

c'est la première fois que je poste sur un forum. En général je trouve la solution en me baladant par ci par la mais dans ce cas, j'ai l'impression que c'est de la magie binaire. Je m'explique:

Je souhaite transférer des données de plusieurs fichiers .xlsx contenant plusieurs feuilles identiques. Voici le début de code que j'ai fait:

'Sub principale récupérant toute les données.
Sub Inventory()

    Dim CD As Workbook 'déclare la variable CD (Claseur Destination)
    Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
    Dim CA As String 'déclare la variable CA (Chemin d'Accès)
    Dim F As String 'déclare la variable F (Fichiers)
    Dim CS As Workbook 'déclare la variable CS (Claseur Source)
    Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
    Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
    Dim NFS As Integer 'déclare la variable NFS (nombre feuille source)
    Dim CF As Integer 'déclare la variable CF (compteur feuille)
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set CD = ThisWorkbook 'définit le classeur destination CD
    Set OD = CD.Sheets("Inventaire") 'définit l'onglet destination OD
    CA = CD.Path & "\" 'définit le chemin d'accès CA
    F = Dir(CA & "*.xlsx") 'définit le premier fichier F avec l'extension ".xlsx" dans le dossier CA
    Do While F <> "" 'exécute tant qu'il existe des fichiers F
        Application.Workbooks.Open (F) 'ouvre le fichier F
        Set CS = ActiveWorkbook 'définit le classeur source CS

        NFS = CS.Sheets.Count 'récupère le nombre de feuille à traiter
        For CF = 1 To NFS 'parcour des feuilles
            Set OS = CS.Sheets(CF) 'définit l'onglet source OS

            If OS.Name <> "data" Then 'on exclu la feuille data

                'copie de l'heure
                'définit la cellule de destination DEST (A2, si A2 est vide, sinon, la première cellule vide de la colonne A de l'onglet OD)
                Set DEST = IIf(OD.Range("A2").Value = "", OD.Range("A2"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
                OS.Range("B2").Copy 'copie la date
                DEST.PasteSpecial (xlPasteValuesAndNumberFormats) 'renvoie dans DEST les valeurs et les formats de nombre de la plage copiée

            End If

        Next
        CS.Close SaveChanges = False 'ferme le fichier source sans enregister les changements
        F = Dir 'fichier suivant avec l'extension ".xlsx" dans le dossier CA
    Loop 'boucle
    CD.Save 'enregistre le fichier destination
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
    MsgBox "Fin du traitement des données !" 'message

    'Se place sur la feuille nommée Inventaire
    Sheets("Inventaire").Activate

End Sub

Le problème: lorsque la ligne "Application.Workbooks.Open (F)" vas s'exécuter, un popup d'erreur me dit "nous ne trouvons pas 'monfichier.xlsx', l'avez vous déplacer, renommer ou supprimer?". Or, c'est lui même qui va chercher le nom. J'ai déjà essayé avec d'autres fichier mais rien ne change. Aidez le moldu VBA que je suis s'il vous plait.

Bon, j'ai résolu mon problème en déplaçant l'ensemble des fichiers .xlsm et .xlsx dans un autre répertoire. Je suppose qu'il y a du y avoir un problème dans le pathing du .xlsm mais si quelqu'un à la réponse exact je suis quand même preneur pour ma culture ^^.

Bonjour,

il faut rajouter également le chemin dans l'instruction Open

Application.Workbooks.Open (CA & F)

Merci, c'est vrai que sans le chemin complet, c'est plus compliqué ^^

Rechercher des sujets similaires à "impossible ouvrir fichier xlsx meme workbooks open voit"