Code générique / erreur 1004

Fermé
AlineTSHS - 10 mai 2021 à 16:03
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 10 mai 2021 à 16:25
Bonjour,

Ayant les mêmes besoins que Naomy, j'ai utilisé le code proposé pour créer un fichier de récolte de données provenant d'autres fichiers excel. Cependant, la macro identifie le premier classeur à ouvrir, mais ne le trouve pas et affiche un message d'erreur
" Erreur d'exécution 1004 Désolée nous ne parvenons pas à trouver "exemple.xlsm" peut-être l'avez-vous déplacé, renommé ou supprimé ?

( en l'occurrence non, il est toujours dans le dossier) , que pourrait-être l'erreur ?

Merci pour votre aide!


Le code que j'ai utilisé :

Sub Macro1()
Dim CC As Workbook 'déclare la variable CC (Classeur Cible)
Dim OC As Worksheet 'déclare la variable OC (Onglet Cible)
Dim F As String 'déclare la variable F (Fichiers)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim PL As Range 'déclare la variable PL (PLage)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set CC = ThisWorkbook 'définit le classeur cible CC
Set OC = CC.Sheets("Feuil1") 'définit l'onglet cible OC (à adapter)
F = Dir(CC.Path & "\*.xlsm") 'définit le fichier F (premier fichier Excel du dossier contenant ce classeur)
Do While F <> "" 'boucle tant qu'il existe des fichiers
If Not F = CC.Name Then 'condition : si F n'est pas ce classeur
Workbooks.Open (F) 'ouvre le fichier F
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CC.Sheets("donnesimporter") 'définit l'onglet source OS (à adapter)
Set PL = OS.Range("B32:K32") 'définit la plage PL (à adapter, peut aussi être PL=OS.Rows(1))
'définit la cellule de destination DEST (A1 si A1 est vide,
'sinon la première cellule vide de la colonne 1 (=A) de l'onglet cible OC (à adapter)
Set DEST = IIf(OC.Range("A1").Value = "", OC.Range("A1"), OC.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
PL.Copy DEST 'copy la plage PL dans DEST
CS.Close 'ferme le classeur source
End If 'fin de la condition
F = Dir 'redéfinit le fichier F (prochain fichier Excel du dossier contenant ce classeur)
Loop 'boucle
End Sub





s / Edge 89.0.774.48</config>
A voir également:

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
10 mai 2021 à 16:25
bonjour,
peux-tu utiliser les balises de code? explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
(et préciser "basic" pour du VBA)

à quelle ligne obtiens-tu le message d'erreur?

moi je ferais plutôt:
Workbooks.Open (CC.Path & "\" & F) 'ouvre le fichier F
0