Code générique / erreur 1004
AlineTSHS
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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>
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:
- Code générique / erreur 1004
- Code ascii - Guide
- Clé générique windows 10 - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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:
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