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

VBA - Ouvrir fichier : Erreur 400

  • Initiateur de la discussion Initiateur de la discussion AntoineR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

AntoineR

Guest
Bonjour à tous !

Je souhaite ouvrir un fichier, j'ai ce code, mais j'obtiens une erreur 400 au niveau de la ligne "Workbooks.Open (CheminFile & NomFile)" et je n'arrive pas à trouver pourquoi...

merci pour votre éventuelle aide !!

Code:
Public Function OpenFile(ByVal CheminFile As String, ByVal NomFile As String) As Boolean

Dim isOpen As Boolean
isOpen = False

For Each file In Workbooks
    If file.Name = NomFile Then
        isOpen = True
    End If
Next

If isOpen = False Then
    Workbooks.Open (CheminFile & NomFile) '---->>> Erreur 400 sur cette ligne
    OpenFile = False
Else
    OpenFile = True
End If

End Function
_________________________________________________________________

Sub OpenExtractions()

Dim CheminFile As String
Dim NomFile As String
CheminFile = ActiveWorkbook.Path + "\"
NomFile = "Extraction.xls"
Dim FileOpen As Boolean
FileOpen = OpenFile(CheminFile, NomFile)

End Sub
 
Re : VBA - Ouvrir fichier : Erreur 400

Bonjour.
Personnellement plutôt qu'un Boolean c'est un Workbook que je renverrais :
VB:
Sub xy()
Dim MonClasseur As Workbook, Plage As Range
Set MonClasseur = Classeur("NomClas.xls")
If MonClasseur Is Nothing Then Exit Sub
Set Plage = MonClasseur.Worksheets(1).UsedRange
'etc. …
End Sub

Function Classeur(NomFic As String, Optional ByVal Dossier As String) As Workbook
If Dossier = "" Then Dossier = ThisWorkbook.Path
If Dossier = "" Then Dossier = CurDir
On Error Resume Next
Set Classeur = Workbooks(NomFic)
If Err Then
   Err.Clear: Set Classeur = Workbooks.Open(Dossier & "\" & NomFic)
   If Err Then MsgBox "Il n'existe pas de classeur """ & NomFic _
      & """ sur :" & vbLf & Dossier, vbCritical, "Classeur"
ElseIf UCase(Classeur.Path) <> UCase(Dossier) Then
   If MsgBox("Un classeur """ & NomFic & """ est déjà ouvert, mais son chemin est :" _
      & vbLf & Classeur.Path & vbLf & "et non pas :" & vbLf & Dossier & vbLf & _
      "Faut-il le considérer comme celui désiré ? (sinon fermez le d'abord)", _
      vbYesNo + vbExclamation, "Classeur") = vbNo Then Set Classeur = Nothing
   End If
End Function
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…