Erreur 1004:fichier introuvable depuis changement de version(97-2003->2016)

Bonjour tout le monde ,

Avant toute chose je préfère préciser que la macro que j'essaie de réparer n'est pas de moi donc certains éléments peuvent me paraitre obscurs ou difficile à comprendre de plus je ne suis pas habitué pour ne pas dire débutant avec le langage VBA d'Excel .

La macro sur laquelle je travaille à pour but de récupérer un fichier Excel de récupérer les donnés qu'il contient et de crée un nouveau fichier contenant les données traité et trier selon certains filtres.

Pour se faire au clic sur un bouton de la première feuilles, une boite de dialogues s'ouvre permettant à l'utilisateur de choisir le fichier à rentrer, un menu de lancement apparait ensuite pour choisir les filtres ( été/hiver , semaine/semaine vacance /samedi/dimanche). Aprés cette sélection la macro est censée récupérer les données et les traitées avant de le ressortir dans un nouveaux fichiers .

Aprés avoir fournis le fichier et choisis les filtres ,le module principal doit ouvrir le workbook FichierATraiterStr mais ne le trouve pas empêchant la suite du programme.Le problème qui survient à chaque tentatives est une erreur 1004:" désolé nous ne trouvons pas FichierATraiterStr.xlsx.Peut être l'avez vous déplacé ,renommé ou supprimé". Cependant le fichier des chemins récupérer ne sont pas des chemins relatifs donc ce n'est pas une erreur de cheminement ,on récupère directement le chemin lors de la saisie du document à traiter.

Récupération par le bias du bouton:

Private Sub TraitementBouton_Click()

    Dim FichierOutils As Workbook
    Dim FichierTempsDeParcours As Workbook

    Dim ReponseOuverture

    Set FichierOutils = ActiveWorkbook

    ReponseOuverture = MsgBox("Veuillez importer le fichier temps de parcours à traiter.", vbOKCancel, "Démarrage")

    If ReponseOuverture = vbOK Then

        StockageNomFichierATraiter = ""

        ReponseOuverture = Application.GetOpenFilename("Fichier Excel,*.xlsx", , "Importation du Fichier Temps de Parcours")

        If ReponseOuverture = False Then GoTo SortieFermeture

        Application.ScreenUpdating = False

        Workbooks.Open ReponseOuverture

        Set FichierTempsDeParcours = ActiveWorkbook

        MenuLancement.StockageNomFichierATraiter = ReponseOuverture

        MenuLancement.AffichageDeLaLigne = "Ligne : " & FichierTempsDeParcours.Sheets(1).Cells(10, 7)

        FichierTempsDeParcours.Close

        FichierOutils.Activate

        MenuLancement.Show

        Set FichierTempsDeParcours = Nothing

        Application.ScreenUpdating = True

    End If 'ReponseOuverture = vbOK

SortieFermeture:

    Set FichierOutils = Nothing

End Sub 'TraitementBouton_Click

Code du module 1

Sub CompilationLancements(FichierOutils As Workbook, FichierATraiterStr As String)

    Dim FichierTP As Workbook, FichierPRD As Workbook

    Workbooks.Open "FichierATraiterStr"

    Set FichierTP = ActiveWorkbook

    If FichierTP.Sheets.Count > 2 Then

        MsgBox "Le fichier semble être un fichier déjà compilé", vbExclamation, "Erreur"

        'Application.DisplayAlerts = False
            FichierTP.Close False
        'Application.DisplayAlerts = True

        GoTo Sortie

    End If 'FichierTP.Sheets.Count > 2

    FichierOutils.Activate

    ExtractionTroncon FichierTP, 2

    Colorisation FichierTP, 2

    GestionFeuilleSynthese FichierTP

    MiseEnPage FichierTP.Sheets(3).Range(FichierTP.Sheets(3).Cells(2, 2), FichierTP.Sheets(3).Cells(FichierTP.Sheets(3).Cells(4, 2).CurrentRegion.Rows.Count + 1, FichierTP.Sheets(3).Cells(4, 2).CurrentRegion.Columns.Count + 4)), FichierTP

    CorrectionTheorique FichierTP

    EcritureMnemosLong FichierTP, FichierOutils

    Application.DisplayAlerts = False
    FichierTP.Sheets(4).Delete
    Application.DisplayAlerts = True

    If MenuLancement.ArrondiTempsReal = False Then RecalculTempsGlobaux FichierTP

    If MenuLancement.SuppressionDoublonsTick Then SuppressionDesDoublons FichierTP

    With FichierTP.Sheets(3).PageSetup

        .LeftMargin = Application.InchesToPoints(0.78740157480315)
        .RightMargin = Application.InchesToPoints(0.78740157480315)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlLandscape
        .Zoom = 100
        .PrintTitleRows = "$2:$4"
        .PrintTitleColumns = ""

    End With

    Dim NomSauvegarde

    ReponseSauvegarde = MsgBox("Voulez-vous sauvegarder le fichier Temps de Parcours ?", vbYesNo, "Enregistrement")

    If ReponseSauvegarde = vbYes Then

        Dim Extraction As String

        If Right(FichierTP.Name, 4) = ".xlsx" Then Extraction = Left(FichierTP.Name, Len(FichierTP.Name) - 4) Else Extraction = FichierTP.Name
        NomSauvegarde = Application.GetSaveAsFilename(Extraction & " version compilée du " & Format(Now, "dd-mm-yy") & ".xlsx")

        If NomSauvegarde = False Then GoTo Sortie

        FichierTP.SaveAs NomSauvegarde

    End If 'ReponseSauvegarde = vbYes

Sortie:

    Unload MenuLancement

End Sub 'CompilationLancements(FichierOutils As Workbook, FichierATraiterStr As String, FichierPRDStr As String)

Ligne posant problèmes pour le débogeur :

Workbooks.Open "FichierATraiterStr"

Elle retourne une erreur 1004 FichierATraiterStr.xlsx déplacé renommé ou supprimé

Si besoin de précisions ou du fichier je peux fournir les documents .
Merci d'avance pour votre aide!

Cordialement Nelson

Bonsoir,

avez vous fait par exemple un MSGBOX de la variable qui pose problème juste avant la ligne qui pose problème, comme cela vous verrez bien si elle correspond ce à quoi vous vous attendez.

@ bientôt

LouReeD

Bonjour LouReeD

Bonjour NelsonDEOR et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum

En ce qui concerne votre problématique, vous appelez la sub avec des paramètres

Sub CompilationLancements(FichierOutils As Workbook, FichierATraiterStr As String)

Or, dans votre votre code, vous ne vous servez pas du paramètre, mais d'un texte (mis entre guillemets)

Workbooks.Open "FichierATraiterStr"

A remplacer par (sans les guillemets)

Workbooks.Open FichierATraiterStr

@+

Bonjour BrunoM45 et LouReeD;

J'ai essayer un msgbox mais rien ne s'affiche à part le text contenu dans la box , et j'ai enlevé les guillemets sur la ligne concernée mais juste le message de l'erreur 1004 à changé , désormais il affiche :" Désolé nous ne trouvons pas .Peut être l’avez vous déplacé,renommé ou supprimer .

Merci pour les propositions

Bonjour,

Donc si rien ne s'affiche avec

Sub CompilationLancements(FichierOutils As Workbook, FichierATraiterStr As String)
    Dim FichierTP As Workbook, FichierPRD As Workbook
Msgbox FichierATraiterStr
    Workbooks.Open FichierATraiterStr

c'est que rien n'est envoyé à la procédure, d'où le message

Merci ! C'est bien ce qui me semblais que cet attribut (FichierATraiterStr) passé en paramètre au début de la fonction était vide et donc me faisait une erreur . Un idée de comment faire pour que FichierATraiterStr sois égal au fichier qui à été sélectionner au début de la macro ?

Re,

Un idée de comment faire pour que FichierATraiterStr sois égal au fichier qui à été sélectionner au début de la macro ?

Non pas d'idée, perso je ne comprends pas votre code "brouillon" et nous n'avons pas de fichier (comme il est vivement recommandé dans la charte du forum)

@+

Je ne peu pas fournir le fichier complet ,c'est pourquoi j'ai fournis le code des deux pages principales(les autres pages ne nous avancent pas elles ont pour but le traitements des données) , celle de récupération du fichier et celle qui va traiter le fichier et crée un nouveau fichier avec des données exploitées.J'ai pu régler pas mal de soucis sur la macro et ai presque trouvé la solution cependant je peine à la mettre en place .En renommant mon fichier fichierATraiterStr il est trouvé par la macro et donc traités ,le problème c'est que normalement le paramètre FichierATraiterStr doit être le nom du fichier qu'on lui as transmis via le menu de sélection en début .

Re,

Bon ok, mais je ne vois a aucun moment dans le premier module un appel à la sub

Call CompilationLancements(NomFichierOutils, NomFichieràtraiter)

@+

Merci beaucoup de la réponse je vais essayer ça !

J'ai réussi à trouver une solutions temporaire au problèmes elle fonctionne avec le rafistolage je posterais la solution dés que je l'aurais trouvée, merci pour votre aide

Rechercher des sujets similaires à "erreur 1004 fichier introuvable changement version 2003 2016"