Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

jbballeyguier

XLDnaute Nouveau
Bonjour,

j'ai récupéré un bout de macro permettant de scanner une arborescence et de trouver les fichiers présents dans les sous-dossiers.
Je l'ai adaptée afin qu'elle me permette d'ouvrir les fichiers trouvés les uns après les autres.
Elle regarde dans les différents dossiers dont le nom est trouvé dans une colonne de la feuille "Nomenclature" du fichier dans laquelle se trouve la macro.
Cependant la macro s'arrête avec une erreur 424 "Objet requis". Malgré mes recherches je n'arrive pas à trouver la raison de l'erreur...

auriez vous une idée ?

merci d'avance

Code:
Sub ListeFic()
    Dim ScanFic As Office.FileSearch
    Dim NomFic  As Variant
    Dim racine As String
    Dim chemin As String

h = 1
j = 1

Set ScanFic = Application.FileSearch
racine = ThisWorkbook.Sheets("Nomenclature").Cells(h, j)
chemin = (ThisWorkbook.Path + "\" + racine)

    With ScanFic
        .NewSearch
        .LookIn = chemin
        .SearchSubFolders = True
        .FileType = msoFileTypeAllFiles
        Nbr = .Execute

        For Each NomFic In .FoundFiles
            Workbook.Open Filename:=(NomFic)
        Next

    End With
End Sub
 

vbacrumble

XLDnaute Accro
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

Bonjour tous


C'est plutôt ces deux lignes qui m'intriguent, non ?

Sub ListeFic()
Dim ScanFic As Office.FileSearch


Set ScanFic = Application.FileSearch


PS: le + peut aussi servir de caractére de concaténation non ?
 

jbballeyguier

XLDnaute Nouveau
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

@vbacrumble

Effectivement je répondais à PascalXLD.

J'ai Excel 2003.

Le debug situe le problème sur cette ligne :

Code:
Workbook.Open Filename:=(NomFic)
 
Dernière édition:

jbballeyguier

XLDnaute Nouveau
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

En fait, je crois qu'il est déclaré dans le For Each : il a chercher la valeur dans le résultat de la recherche de fichier.

En debug, lorsque je passe au dessus de la variable, il m'affiche bien un chemin vers un fichier, ce qui prouve que la variable a bien été alimentée.

Le problème est qu'il n'arrive pas utiliser cette valeur pour ouvrir le fichier qui correspond... :(
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

Bonjour à tous

si tu cherches à ouvrir avec Excel tous les types de fichier, cela ne risque t il pas de boguer ?

Code:
.FileType = [B][COLOR="Blue"]msoFileTypeAllFiles[/COLOR][/B]

bon après midi
@+
 

vbacrumble

XLDnaute Accro
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

Bonjour Pierrot93

Bingo !


Je l'avais pas vu cette ligne. :rolleyes:

jbballeyguier
Remplace la par celle-ci
.FileType = msoFileTypeExcelWorkbooks
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

Bonjour,
Code:
Sub ListeFic()
    Dim ScanFic As Office.FileSearch
    Dim NomFic  As Variant
    Dim racine As String
    Dim chemin As String

h = 1
j = 1

Set ScanFic = Application.FileSearch
racine = ThisWorkbook.Sheets("Nomenclature").Cells(h, j)
chemin = (ThisWorkbook.Path + "\" + racine)
    With ScanFic
        .NewSearch
        .LookIn = chemin
        .SearchSubFolders = True
        .FileType = msoFileTypeExcelWorkbooks
        .Execute
        For i = 1 To .FoundFiles.Count
            Workbooks.Open .FoundFiles(i)
        Next
    End With
End Sub
A+
kjin
 

jbballeyguier

XLDnaute Nouveau
Re : Erreur 424 lors de l'ouverture d'un fichier à partir d'un variable

Merci pour toutes vos réponses !
Voilà ce à quoi j'aboutis grâce à vos conseils :

Code:
Sub ListeFic()
    Dim ScanFic As Office.FileSearch
    Dim NomFic As Variant
    Dim racine As String
    Dim chemin As String
    Dim fiche As String
    Dim Ench As String

h = 1
j = 1

Set ScanFic = Application.FileSearch
racine = ThisWorkbook.Sheets("Nomenclature").Cells(h, j)
chemin = (ThisWorkbook.Path & "\" & racine)

    With ScanFic
        .NewSearch
        .LookIn = chemin
        .SearchSubFolders = True
        .FileType = msoFileTypeExcelWorkbooks
        .Execute

        For Each NomFic In .FoundFiles
            Workbooks.Open NomFic
            
            Ench = ActiveWorkbook.Name
                Workbooks(Ench).Activate
                    With Sheets("Feuil1")
                        Range(Cells(3, 1), Cells(j, 14)).Select
                        Selection.Copy
                        ThisWorkbook.Activate
                        Worksheets("INPUT").Activate
                        Range(Cells(ligne, 1), Cells(ligne + j - 2, 14)).Select
                        ActiveSheet.Paste
                        Range(Cells(ligne, 15), Cells(ligne + j - 5, 15)).Value = Ench
                    End With
        Next

    End With
End Sub

Ma macro arrive maintenant à ouvrir les fichiers... mais j'aimerai maintenant traiter les données à l'intérieur.
Rien de bien compliqué en perspective, cependant j'ai une erreur assez bizarre dès que je veux activer le classeur. Jugez plutôt :

"Excel a rencontré une erreur et supprimé une partie de la mise en forme pour éviter d'endommager le classeur. Revérifiez soigneusement votre mise en forme"

Est-ce que vous avez déjà eu cette erreur ? Et si oui, d'où cela vient-il ? :confused:

[EDIT] J'ai trouvé : c'était le fichier lui même qui était vérolé ;)
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
545

Statistiques des forums

Discussions
312 331
Messages
2 087 355
Membres
103 528
dernier inscrit
hplus