Problème pour ouvrir un Excel sous VBA

Bonsoir,

J'ai un problème pour le moins étrange.
Lors de l’exécution de ma macro si je rentre 3 paramètres la macro tourne normalement et la dernière ligne de code ouvre bien mon fichier final.
En revanche si je rentre 4 paramètres (et j'ai essayé avec plusieurs fichiers test afin de voir si un fichier en particulier était en cause), la dernière ligne ne s'effectue pas correctement et me renvoie une erreur : "La méthode Open de l'objet workbook à échouer".

Je n'arrive pas à comprendre pourquoi avec 3 paramètres cela fonctionne très bien mais pas au delà...

Edit : Si je supprime la dernière ligne qui me permet d'ouvrir le fichier, la macro s’exécute correctement.
Si j'ouvre ensuite le fichier à la main, Excel me préviens qu'il a trouver un problème dans le contenu du fichier et m'invite à le "récupérer" si le classeur est fiable.
Puis un fenêtre m"indiquant : " Enregistrements réparés: Affichage dans la partie /xl/worksheets/sheet1.xml"

Merci de vos réponse.

OuvrirFichier = Application.GetOpenFilename(FileFilter:="Classeur Excel(* .xlsx),*xlsx", Title:="Selection FSM", MultiSelect:=True)

Set Tableau = GetObject("C:\Users\toto\Desktop\Macro\Tableau.xlsx")
Tableau.Activate                                 ' Afin de pouvoir voir les modifications lors de l'éxécution, sera supprimé plus tard.
Tableau.Windows(1).Visible = True

'Instruction

Instruction modifiant mon classeur tableau

'Fin Instruction

Tableau.SaveAs Filename:="C:\Users\toto\Desktop\Macro\Tableau " & Application.UserName
Tableau.Close
Set Tableau = Nothing

Workbooks.Open Filename:="C:\Users\toto\Desktop\Macro\Tableau " & Application.UserName & ".xlsx"

Bonjour,

si tu autorises la multisélection, tu reçois un tableau qu'il balayer pour récupérer tous les fichiers.
Ex :

    NomFichier = Application.GetOpenFilename(Filtre, 1, "Ouvrir", , True)
    If IsArray(NomFichier) Then
        For cmpt = LBound(NomFichier) To UBound(NomFichier)
                Application.Workbooks.Open NomFichier(cmpt)
                'fich = Split(NomFichier(cmpt), "\")
                'MsgBox fich(UBound(fich))
        Next cmpt
    End If

eric

Merci de ta réponse.

C'est fait avec cette instruction :

Set Classeur1 as Workbook

For compteur = 1 To UBound(OuvrirFichier)

    Set Classeur1 = GetObject(OuvrirFichier(compteur))

    'Instruction

Ou je récupère le classeur excel pour ensuite le mettre dans le workbook classeur1 qui sera libéré en fin d'instruction afin de pouvoir lui donner le prochain classeur sélectionné.

J'avais des cellules fusionnées au sein de mon tableau (Pour faire jolie...) , que je viens d'enlever et la plus aucun problème, ni de fichier corrompus.
Même si cela m’énerve de ne pas comprendre l'explication derrière...

Rechercher des sujets similaires à "probleme ouvrir vba"