VBA Choisir un fichier Excel et importer des données dans un autre fichier

Bonjour à tous,
J'ai créer un code en VBA qui me permet de copier des données d'un fichier Excel (ici Fichier1) pour les coller dans un autre fichier Excel (mon fichier actif avec mon code VBA).

J'aimerais faire deux modification :

1) Ce serai de pouvoir choisir mon fichier Excel. C'est à dire ouvrir une boite qui me permettrait de choisir un fichier Excel et non devoir changer à chaque fois mon chemin dans le code.

2) Et ici je sélectionne 2 colonnes C et D que je copy/colle. Je voudrais aussi sélectionner la colonne M, pour la copy/colle aussi mais je n'y arrive pas comme elles ne sont pas à coté.
Sub Choix_du_Fichier()

Dim Source As Workbook

Set Source = Workbooks.Open("C:\Fichier1.xlsx")

    With Workbooks("Fichier1.xlsx").Worksheets("feuille1").Range("C12:D800").Copy
    End With

Range("A1:B800").PasteSpecial
Workbooks("Fichier1.xlsx").Close False

End Sub

Merci à vous pour votre aide.

Bonjour Lolo30

Alors pour commencer, ton code n'est pas correcte

Sub Choix_du_Fichier()
  Dim Source As Workbook
  Set Source = Workbooks.Open("C:\Fichier1.xlsx")
  Wtih Source.Worksheets("feuille1")
    .Range("C12:D800,M12:M800").Copy
    .Range("A1").PasteSpecial Operation:=XlPasteValues
  End With
  Source.Close SaveChanges:=False
End Sub

Ensuite pour demander à l'utilisateur de choisir un fichier, c'est avec GetOpenFileName

A+

Bonjour,

Une autre solution :

Option Explicit

Sub Choix_du_Fichier()

Dim FichierSource As Variant

Dim WbSource As Workbook
Dim ShCible As Worksheet

    On Error GoTo Fin

    Set ShCible = Sheets("Feuil1")
    FichierSource = Application.GetOpenFilename("Fichiers (*.xlsx),*.xlsx")

    If FichierSource = False Then GoTo Fin

    Application.ScreenUpdating = False
    Set WbSource = Workbooks.Open(FichierSource)
    With WbSource
         .Sheets("feuille1").Range("C12:D800").Copy Destination:=ShCible.Range("A1")
         .Close False
    End With
    Application.ScreenUpdating = True

    MsgBox "Fin de l'import !"
    GoTo Fin

Fin:

    Application.ScreenUpdating = True

    Set ShCible = Nothing
    Set WbSource = Nothing

End Sub

Re bonjour,

Merci à vous deux j'ai réussi à faire ce que je voulais.

Rechercher des sujets similaires à "vba choisir fichier importer donnees"