Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur 1004 Fichier Introuvable

YaGo

XLDnaute Junior
Bonjour,

Lors du lancement de la procédure ci-dessous, j'obtiens le message suivant:
"KV XXX.xls" introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement.

L'erreur s'effectue sur cette ligne: Set KeyValue = Workbooks.Open(WorkbookSlave)

L'orthographe est pourtant bien la bonne et le fichier esclave est situé dans le même dossier que le fichier maitre.
Pouvez-vous m'éclairer sur l'erreur que j'ai pu effectuer dans mes lignes de codes?


Merci et Bonne Journée

YaGo
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Bonjour,

essaye peut être en modifiant comme suit :
Code:
 Set KeyValue = Workbooks.Open(ActiveWorkbook.Path & "\" & WorkbookSlave)

bon après midi
@+
 

YaGo

XLDnaute Junior
Re : Erreur 1004 Fichier Introuvable

Merci Pierrot!

Le seul petit problème c'est que je ne souhaite pas que le fichier s'ouvre mais seulement récupéré certaines valeurs présentes à l'intérieur.
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Re,

Le seul petit problème c'est que je ne souhaite pas que le fichier s'ouvre mais seulement récupéré certaines valeurs présentes à l'intérieur.

bah... dans ton code tu lances l'instruction "open"...

Code:
Workbooks.Open

pour récupérer des données sans ouvrir les fichiers, fais une recherche sur ADO, tu devrais trouver des exemples...
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Re,

pour ne pas voir les actions effectuées par la macro :
Code:
Option Explicit
Sub test()
Application.ScreenUpdating = False
'ton code
Application.ScreenUpdating = True
End Sub
 

YaGo

XLDnaute Junior
Re : Erreur 1004 Fichier Introuvable

ReBonjour,

J'ai regardé un peu les systèmes de connections et manipulations dans les classeurs Excel fermés avec ADO et j'ai pu remarqué que le code était plus difficile à réaliser et que certaines fonctionnalité n'était pas réalisable tel que modifier une cellule contenant une formule ou d'utiliser un classeur protégé par un mot de passe...

Donc je voulais savoir si dans le carde d'un projet avec un classeur maitre qui doit venir chercher plusieurs données dans des classeurs esclave quelle méthode est la plus adapté et la plus rapide? (Désoler mais mes connaissances en programmation sont assez limité....)

Car le fait d'ouvrir un fichier excel puis le refermé est-il beaucoup plus long qu'une démarche ADO?

Ya-Go
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Bonjour,

Car le fait d'ouvrir un fichier excel puis le refermé est-il beaucoup plus long qu'une démarche ADO?

tu peux toujours ouvrir et refermer les classeurs en question, ce en utilisant la proposition post #5 cela sera plus rapide... vitesse par rapport à ADO, aucune idée, pas sur que cela soit significatif...

bonne journée
@+
 

YaGo

XLDnaute Junior
Re : Erreur 1004 Fichier Introuvable

Ok merci

Je vais donc faire sans ADO pour le moment.

Juste une dernière question, Je n'arrive pas à copier les valeurs de mon tableau esclave vers le tableau maitre...

Le problème viens de cette ligne: Ratio.TabTotal(i, 8).Value = Table.TabTotal(i, 20).Value

"Erreur 438: Propriété ou méthodes non gérée par cet objet"

Code:
Option Explicit

Sub CollectRatio()
    Dim WorkbookMaster As Workbook, WorkbookSlave As String
    Dim Ratio, KeyValue, Table
    Dim i As Integer, LastRowTab As Integer, Index As Integer
    
    Set WorkbookMaster = ActiveWorkbook
    Set Ratio = WorkbookMaster.Sheets("Tableau")
    WorkbookSlave = Dir(ActiveWorkbook.Path & "\KV*.xls")
    Do While WorkbookSlave <> ""
        Set KeyValue = Workbooks.Open(ActiveWorkbook.Path & "\" & WorkbookSlave)
        Set Table = KeyValue.Sheets("Tableau")
        
        LastRowTab = Range("A6").End(xlDown).Row  'Dernière ligne de la base de données
        TabTotal = Range("A6:V" & LastRowTab) 'Mise en place des valeurs dans le tableau
        For i = LBound(TabTotal) To UBound(TabTotal)
            If Len(TabTotal(i, 20)) <> 0 And TabTotal(i, 22) = "1" Then
            MsgBox TabTotal(i, 20)
            Ratio.TabTotal(i, 8).Value = Table.TabTotal(i, 20).Value
            End If
        Next
        
        Application.DisplayAlerts = False
        Workbooks(WorkbookSlave).Close
        WorkbookSlave = Dir ' Classeur suivant
    Loop
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Re,

A noter, ces instructions s'appliquent sur la feuille active :

Code:
        LastRowTab = Range("A6").End(xlDown).Row  'Dernière ligne de la base de données
        TabTotal = Range("A6:V" & LastRowTab) 'Mise en place des valeurs dans le tableau

il y a sans doute lieu d'utiliser la variable objet adéquate si pas le cas...
 

YaGo

XLDnaute Junior
Re : Erreur 1004 Fichier Introuvable

Effectivement le tableau virtuel de cette feuille marche car il me renvoie la bonne valeur demandé mais impossible de la copier même avec l'instruction suivante...
Code:
LastRowTab = Range("A6").End(xlDown).Row  'Dernière ligne de la base de données esclave
TabTotal = Range("A6:V" & LastRowTab) 'Mise en place des valeurs dans le tableau esclave
     For i = LBound(TabTotal) To UBound(TabTotal)
            If Len(TabTotal(i, 20)) <> 0 And TabTotal(i, 22) = "1" Then
            MsgBox TabTotal(i, 20)
            TabTotal(i, 20).Copy
            End If
     Next
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 1004 Fichier Introuvable

Re,

tu ne peux pas copier un élément d'un tableau virtuel, il faut stocker sa valeur dans une variable ou bien l'envoyer directement vers dans un autre tableau ou dans une cellule...
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…