Ouvrir un classeur mais erreur '1004

Bonjour

Quelqu'un peut m'aider? Je voudrais ouvrir plusieurs classeurs à la suite pour récupérer des données.

les classeurs se trouvent tous dans le même dossier 'C:\Users\stoec\Documents\Travail VBA\01_TIA_Excel_Dateien.xls'

Mais tout fonctionne bien jusqu'à l'ouverture du premier classeur "DB070-AlarmFlow.xlsm", le message d'erreur '1004' Désolé... Nous ne trouvons pas DB070-AlarmFlow.xlsm. Peut-être l'avez-vous déplacé, renommé ou suprimé?

Le nom du fichier? "DB070-AlarmFlow.xlsm." se trouve bien dans mon dossier. Il a fonctionné un fois pendant des corrections de code mais je ne sais pas pourquoi? Et depuis plus...

Voici le début du module jusqu'à l'erreur.

Sub Récuperer_tableaux()

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 DR As String 'déclare la variable DR (Fichier du nom DB)

Dim DM As String 'déclare la variable DM (Date Maximum)

Dim CS As Workbook 'déclare la variable CS (Claseur Source)

Dim OS As Worksheet 'déclare la variable OS (Onglet Source)

Dim DL As Long 'déclare la variable DL (Dernière Ligne)

Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Dim Wbk As Workbook

Dim Fichier As String

Dim NBCAR As Long

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran

Set CD = ThisWorkbook 'définit le classeur destination CD

Set OD = CD.Sheets("Données") 'définit l'onglet destination OD

CA = CD.Path & "\" 'définit le chemin d'accès CA

OD.Range("A7:AH" & Application.Rows.Count).Clear 'supprime d'éventuelles ancienne données dans l'onglet OD

DR = "DB07" 'Intitalise la recherche des noms des fichiers DR

F = Dir(CA & "DB07*.xlsm") 'définit le premier fichier F avec l'extension ".xlsm" dans le dossier CA

Do While F <> "" 'exécute tant qu'il existe des fichiers F

If Left(F, 4) > DR Then DM = Left(F, 4) Else DM = Left(F, 4) 'Défini DM pour la recherche

F = Dir 'fichier suivant, avec l'extension ".xlsm" dans le dossier CA

Loop 'boucle

F = Dir(CA & CStr(DM) & "*.xlsm") 'définit le premier fichier F commençant par DM, avec l'extension ".xlsm" dans le dossier CA

Do While F <> "" 'exécute tant qu'il existe des fichiers F

MsgBox Mid(F, 1, InStrRev(F, ".") - 1) 'Affiche le fichier trouvée

NBCAR = Len(F)

Application.Workbooks.Open Right(F, NBCAR) ici l'ouverture du premier classeur mais le message d'erreur.

45vba-recup.xlsx (10.36 Ko)

Ci-joint le code complet

Merci d'avance

Bonsoir,

    Application.Workbooks.Open Right(F, NBCAR) 'Mid(F, 1, InStrRev(F, ".") - 1)  'ouvre le fichier F, attention le premier fichier doit être en .xlsx

dans ce code, il manque le nom du répertoire (variable CA, si j'ai bien lu ton code) et l'extension du fichier. J'en déduis que c'est la cause de l'erreur que tu reçois.

Bonjour,

Comme tu débutes, et pour que nous puissions lire ton code plus facilement, je t'invite à lire ces conseils de Microsoft :

Et comme l'a très justement dit h2so4, pour ouvrir un fichier il faut spécifier le nom complet (i.e qui contient le chemin).

Bonjour Messieurs

h2so4@ merci beaucoup! J'avais essayé avec le répertoire mais j'ai testé tellement de chose que je me suis perdu!

Merci à vous deux! Malgré mon brouillon mais comme je ne veux pas toujours tout réécrire pendant les tests je les mets à la suite.

J'ai vais passer un bon dimanche avec un code qui fonctionne.

Bon dimanche à vous.

Rechercher des sujets similaires à "ouvrir classeur erreur 1004"