Copier une feuille d'un autre classeur dans mon classeur actuel

Bonjour,

J'aimerais savoir s'il est possible de copier une feuille d'un autre classeur dans le classeur que j'utilise et dans lequel j'ai ma macro.

Je sais que dans l'autre sens c'est possible, mais je n'ai rien trouvé pour le sens inverse.

MonClasseur.xlsm → classeur ouvert sur lequel je déclenche ma macro

Classeur1.xlsx → classeur actuellement fermé que je veux ouvrir avec ma macro et dans lequel je veux copier la feuille "Feuil1"

Pour l'instant, j'ai cette macro, mais elle copie du classeur actuel vers un autre :

Sub CopieFeuilleCalcul()

    Dim monclasseur As Workbook

    Dim mafeuille As Object

    Set mafeuille = ActiveSheet

    Application.ScreenUpdating = False

    On Error Resume Next

    Set monclasseur = Workbooks.Open _
    ("F:\Ferme des Vallons\App\acopier.xlsx")

        mafeuille.Copy Before:=monclasseur.Sheets(1)

        monclasseur.Save

        monclasseur.Close

    Application.ScreenUpdating = True

End Sub

Bonjour, à partir du moment ou vous connaissez le nom de fichier , le chemin d'accés et le nom de la feuille à copier.

c'est pratiquement le même principe.

quelque chose dans ce genre là :

Sub Macro1()
'variables classeurs
Dim classeurimport as workbook
Dim classeurexport as workbook
classeurimport=activeworkbook.name

Application.ScreenUpdating = False

'on ouvre le fichier
Workbooks.Open Filename:="F:\Ferme des Vallons\App\acopier.xlsx"
classeurexport=activeworkbook.name

'on copy la feuille 1 vers le classeur import  emplacement à adapter before ou after la feuille que vous souhaitez    

Sheets("Feuil1").Copy After:=Workbooks(classeurimport).Sheets(1)

'On referme le classeur
classeurexport.Close

Application.ScreenUpdating = True
End Sub

Merci @Xmenpl pour ton aide.

J'ai quelque peu modifier la formule car j'avais un problème sur le classeImport qui était déclaré en workbook mais qui recevez un string.

Et j'ai rajouté une ligne pour choisir le fichier dans lequel est présent la feuille à copier et ensuite pour la renomer afin que mes autre macro fonctionne bien et supprimer l'ancienne feuille.

Sub importTabCommande()

    'variables classeurs
    Dim classeurimport As String
    Dim classeurexport As String
    classeurimport = ActiveWorkbook.Name

    Application.ScreenUpdating = False

    'déclarions + ouverture d'un explorateur de fichier pour choisir le fichier dans lequel est présent la feuille à copier
    Dim cheminComplet As String

    cheminComplet = Application.GetOpenFilename
    Debug.Print cheminComplet

    'si on quitte l'explorateur sans choisir de fichier alors on quitte la macro et ducoup rien n'est copié ni modifier ni supprimé.
    If cheminComplet = "Faux" Then
        Exit Sub
    End If

    'on ouvre le fichier
    Workbooks.Open Filename:=cheminComplet
    classeurexport = ActiveWorkbook.Name

    'on copy la feuille 1 vers le classeur import  emplacement à adapter before ou after la feuille que vous souhaitez

    Sheets(1).Copy After:=Workbooks(classeurimport).Sheets(1)

    'On referme le classeur
    Workbooks(classeurexport).Close

    'on désactive les alerte pour supprimer l'ancienne feuille sans demander confirmation
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'suppression de l'ancienne feuille
    Worksheets(3).Delete
    'on renomme la nouvelle feuille pour permettre au autre macro de s'exécuter
    Worksheets(2).Name = "Commande"

    Application.ScreenUpdating = True

End Sub

Bien vu effectivement pour le string.

Rechercher des sujets similaires à "copier feuille classeur mon actuel"