Microsoft 365 Code vba pour Ouvrir un fichier et copier son contenu dans un classeur existant à partir de la boite de dialogue

  • Initiateur de la discussion Initiateur de la discussion Faroyo
  • 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 !

Faroyo

XLDnaute Junior
Bonjour,

A partir d'un bouton dans un classeur excel, je cherche un code vba qui me permettrai d'ouvrir la boite de dialogue, choisir un fichier excel dans un repertoire bien precis, sélectionner le fichier de la semaine en cours, copier son contenu dans un onglet défini du classeur ouvert.

Merci pour votre aide

Faroyo
 
Solution
Bonjour Faroyo,

Essayez cette macro :
VB:
Sub Copier()
Dim NomFichierSource As Variant
    ChDir ThisWorkbook.Path
    Do
        NomFichierSource = Application.GetOpenFilename("Fichiers .xls* (*.xls*), *.xls*")
        If NomFichierSource = False Then Exit Sub
    Loop While NomFichierSource = ThisWorkbook.FullName
    Application.ScreenUpdating = False
    With Workbooks.Open(NomFichierSource).Worksheets(1) 'ouvre le fichier
        .UsedRange = .UsedRange.Value 'supprime les formules
        .Cells.Copy ThisWorkbook.Worksheets(1).[A1] 'copier-coller
        .Parent.Close False
    End With
End Sub
A+
Bonjour Faroyo,

Essayez cette macro :
VB:
Sub Copier()
Dim NomFichierSource As Variant
    ChDir ThisWorkbook.Path
    Do
        NomFichierSource = Application.GetOpenFilename("Fichiers .xls* (*.xls*), *.xls*")
        If NomFichierSource = False Then Exit Sub
    Loop While NomFichierSource = ThisWorkbook.FullName
    Application.ScreenUpdating = False
    With Workbooks.Open(NomFichierSource).Worksheets(1) 'ouvre le fichier
        .UsedRange = .UsedRange.Value 'supprime les formules
        .Cells.Copy ThisWorkbook.Worksheets(1).[A1] 'copier-coller
        .Parent.Close False
    End With
End Sub
A+
 
Bonjour Faroyo,

Essayez cette macro :
VB:
Sub Copier()
Dim NomFichierSource As Variant
    ChDir ThisWorkbook.Path
    Do
        NomFichierSource = Application.GetOpenFilename("Fichiers .xls* (*.xls*), *.xls*")
        If NomFichierSource = False Then Exit Sub
    Loop While NomFichierSource = ThisWorkbook.FullName
    Application.ScreenUpdating = False
    With Workbooks.Open(NomFichierSource).Worksheets(1) 'ouvre le fichier
        .UsedRange = .UsedRange.Value 'supprime les formules
        .Cells.Copy ThisWorkbook.Worksheets(1).[A1] 'copier-coller
        .Parent.Close False
    End With
End Sub
A+
Testé ce matin. C'est top, ca fonctionne parfaitement.
Merci pour aide et votre temps
 
- 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

Discussions similaires

Retour