Erreur sur une ouverture de fichier

Salut,

J'ai une macro qui ouvre un fichier Excel dans lequel je vais chercher des données pour les importer dans le fichier Excel de travail.

'Sélection du fichier source
Fichier_destination = ActiveWorkbook.Name
Fichier_ouvrir = Application.GetOpenFilename("Fichier Excel, *.xls", , "Choisir le fichier", , False)

If Fichier_ouvrir = False Then Exit Sub

Workbooks.Open Filename:=Fichier_ouvrir
Fichier_source = ActiveWorkbook.Name
Feuille_source = ActiveSheet.Name

Workbook.Fichier_destination.Select

J'ai un plantage "Objet requis" sur le

Workbook.Fichier_destination.Select

Est ce que vous pouvez m'expliquer d'où ça vient ?

J'ai tenté Workbook.Fichier_destination.Activate, Workbook(Fichier_destination).Select et .Activate sans résultat.

Ou encore mieux, je suis preneur d'une solution qui ouvrirait le fichier en arrière plan sans l'activer. Il ne sert que de source de données et est fermé à la fin de la macro, à aucun moment l'opérateur n'a à intervenir dessus.

Merci d'avance.

Manu

Bonjour,

Voici un essai possible :

Sub CopierFeuille()
    Dim Fichier_destination As String
    Dim Fichier_ouvrir As String
    Dim Fichier_source As String
    Dim Feuille_source As String
    Dim SourceWorkbook As Workbook ' Ajout de la déclaration

    ' Enregistrez le nom du fichier destination (le classeur où se trouve ce code)
    Fichier_destination = ThisWorkbook.Name

    ' Demandez à l'utilisateur de choisir le fichier source
    Fichier_ouvrir = Application.GetOpenFilename("Fichier Excel, *.xls", , "Choisir le fichier", , False)

    ' Vérifiez si l'utilisateur a annulé la boîte de dialogue de sélection de fichier
    If Fichier_ouvrir = "Faux" Or Fichier_ouvrir = "" Then
        MsgBox "Aucun fichier sélectionné. Opération annulée."
        Exit Sub
    End If

    ' Ouvrez le classeur source
    Set SourceWorkbook = Workbooks.Open(Filename:=Fichier_ouvrir)

    ' Enregistrez le nom du classeur source et de la feuille active
    Fichier_source = SourceWorkbook.Name
    Feuille_source = ActiveSheet.Name

    ' Sélectionnez le classeur de destination (le classeur où se trouve ce code)
    Workbooks(Fichier_destination).Activate
End Sub

Bonjour

Il vous manque un S à WorkbookS

Workbooks(Fichier_destination).Select

Mais inutile de faire d'ajouter des "Select" avec VBA, à moins de vouloir ralentir l'exécution du code

Cordialement

Edit : Oups, je n'avais pas vu Oiseaubleu répondre. Cela étant dit, comme écrit pas besoin de mettre des Select ou Activate

Merci Oiseaubleu, ça fonctionne.

Dan, je n'ai pas le choix, le fichier_ouvrir est actif après son ouverture.

Manu

Rechercher des sujets similaires à "erreur ouverture fichier"