Erreur 1004 avec macro pour ouvrir fichier excel. [Fermé]

Signaler
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017
-
Messages postés
15762
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2021
-
Bonjour,

Je rencontre un soucis avec une macro que j'ai trouvé et modifié afin qu'elle corresponde à mes besoins. Le plus étonnant, c'est que la modification a été un succès, elle a fonctionné.

Sauf que non, elle a fonctionné une fois et après quand je l'exécute à nouveau, j'ai une erreur 1004: fichier introuvable. vérifier l'orthographe du nom du classeur et la validité de l'emplacement.

Si une âme charitable veut bien me donner l'astuce, et m'expliquer le pourquoi du comment ça marche et après ça ne marche plus...

je vous copie-colle la partie incriminée.


ChDir "D:\123\ab"
    ClasseurRegional = Dir("D:\123\ab\*.xls")
    While Len(ClasseurRegional) > 0
        Workbooks.Open ClasseurRegional [[[<=== c'est là que ça ne va pas.]]]
        Range("A4:R4").Copy
        Workbooks("alpha.xlsm").Activate
        DebutNomFichier = ActiveSheet.UsedRange.Rows.Count + 1
        Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
        ActiveSheet.Paste
        Workbooks(ClasseurRegional).Close
        ClasseurRegional = Dir
    Wend


Merci pour votre retour.

Amicalement,

S

1 réponse

Messages postés
15762
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2021
1 488
Bonjour,

Je mets toujours le chemin du fichier, pas besoin du ChDir
Chemin = "D:\123\ab\"
ClasseurRegional = Dir(Chemin & "*.xls")
While ClasseurRegional <> ""
    Workbooks.Open Chemin & ClasseurRegional
    Range("A4:R4").Copy
    Workbooks("alpha.xlsm").Activate
    DebutNomFichier = ActiveSheet.UsedRange.Rows.Count + 1
    Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
    ActiveSheet.Paste
    Workbooks(ClasseurRegional).Close
    ClasseurRegional = Dir
Wend
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017

Mmmh très bien il va falloir que je retravaille tout cela dans ce cas.
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017

Bonjour,

Je me permets de vous développer mes avancées quant à ma macro. Votre solution de copie sans ouverture de classeur à parfaitement fonctionné, j'ai ainsi put adapté l'exemple à ma configuration. cf ci-contre:

Chemin = "C:\Users\raind\Desktop\test2\"
    fichier = Dir(Chemin & "*.xls")
    Do While Len(fichier) > 0
        If fichier <> ThisWorkbook.Name Then
            ThisWorkbook.Names.Add "Plage", _
            RefersTo:="='" & Chemin & "[" & fichier & "]Feuil2'!$A$2:$R$2"
            With Sheets("Feuil2")
            .[A2:R2] = "=plage"
            .[A2:R2].Copy
                Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(0, 1) = fichier
            .[A2:R2].Clear
            End With
        End If
        fichier = Dir()
    Loop


Le dernier soucis que je rencontre provient du fait que le nom du fichier d'où les données sont extraites apparaît dans la case B de la ligne, écrasant les données copiées. Et là, j'avoue ne pas voir d'où vient le soucis dans la macro.

Bon week-end à vous.

Amicalement,

S
Messages postés
15762
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2021
1 488 >
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017

Bonjour,

nom du fichier d'où les données sont extraites apparaît dans la case B de la ligne, écrasant les données copiées
Pourquoi cette ligne?
Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(0, 1) = fichier

Dans le code exemple, Y a pas et c'est cette ligne qui vous scrounch le cellule B
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017

Excusez moi pour le délai de réponse.

Je voulais vous remercier pour le temps et les conseils que vous m'avez apporté. La macro marche parfaitement chez moi, mais pas au boulot mais ça c'est d'un autre ressort.

Vous souhaitant une bonne continuation !

S
Messages postés
15762
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2021
1 488 >
Messages postés
6
Date d'inscription
jeudi 19 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017

Bonjour,

Excusez moi pour le délai de réponse.
Y a pas d'lezard

Bonne continuation