Copier une feuille Excel dans un autre fichier

Bonjours a tous,

Veuillez m'excuser si je crée un doublon, ma question doit être assez commune mais je n'ai pas trouvé la réponse.

Je recherche tout simplement à créer une petite macro qui me permettra de copier une feuille nommé "TCD" pour l’insérer dans mon fichier excel.

Cette feuille est présente dans plusieurs de mes fichiers excel, ils sont nommé en fonction des semaines ( Semaine 41; Semaine 42; Semaine 43 etc..)

Je veux donc que la macro me demande dans quel fichier excel elle doit aller copier la feuille TCD ( Dans le fichier "Semaine 41 "ou "Semaine 42" ou "Semaine 43" ? etc ..). J'ai essayé de trouver par moi même mais je suis assez novice en VBA, voila ce que j'ai tenté .

exemple

Je sais pas du tout si je m'y prend correctement, mais j’espère que vous pourrez me corriger ..

Merci par avance pour votre aide

Bonjour,

A tester :

Sub Test()

    Dim Cls As Workbook
    Dim Fe As Worksheet
    Dim Semaine As String

    Semaine = InputBox("Veuillez indiquer la semaine pour la copie de la feuille !")

    If Semaine <> "" Then

        On Error Resume Next
        Set Cls = Workbooks(Semaine & ".xlsm")

        If Err.Number <> 0 Then

            MsgBox "Le classeur '" & Semaine & ".xlsm' n'existe pas ou n'est pas ouvert !"
            Exit Sub

        End If

        Set Cls = Workbooks(Semaine & ".xlsm")

        Set Fe = ThisWorkbook.Worksheets("TCD")

        Fe.Copy , Cls.Sheets(Cls.Sheets.Count)

    End If

End Sub

PS quand tu poste du code, colle le entre les balises Code (bouton Code)

Bonjour These,

Merci pour votre réponse, pas d'alerte mais rien ne se passe lors de l'exécution

Je vous joins le fichier "Tableau de bord" dans le quel je souhaite copier la feuille "TCD". Votre code est affecté au bouton "copie"

Je vous joins également la semaine 42 pour test.

Par avance merci

13semaine-42.xlsm (91.03 Ko)

Ton fichier "Tableau de bord .xlsm" ne contient pas de feuille nommée "TCD" donc, il ne peut pas la copier (On Error resume Next empèche le débogage !)

Bonjour These,

C'est justement ma problématique, je souhaite créer une copie de la feuille "TCD" dans mon fichier "Tableau de bord". Et la feuille "TCD" est présente dans mes fichiers hebdomadaires ( "Semaine 40", "Semaine 41", "Semaine 42" etc..) et donc je souhaites que le programme me demande quand quel fichier hebdomadaire il doit aller chercher la feuille TCD. Dans mon exemple je lui demanderai d'aller copier la feuille "TCD" dans le fichier "Semaine 42", et de me créer une copie dans le fichier tableau de bord.

Je viens de comprendre que le programme que vous me proposez me permet finalement de réaliser l'opération inverse. Copie d'une feuille "TCD" dans le fichier "Tableau de bord" puis de créer une copie dans "Semaine 42"

La modification est elle réalisable ?

Je vous tiens au courant si j'arrive à modifier par moi-même

Merci pour votre aide

C'est tout bon j'ai réussi à modifier, merci beaucoup

Et une dernière question, maintenant que la feuille "TCD" se crée bien dans mon fichier "tableau de bord", est il possible de rajouter un bout de code, pour que le graphique contenu dans la feuille "TCD" soit copier puis coller dans la feuille "Tableau" en cellule "A25" ?

Merci pour votre

(Macro Test)

Re,

Comme ceci ça devrait fonctionner :

Sub Test()

    Dim Cls As Workbook
    Dim Fe As Worksheet
    Dim Semaine As String

    Semaine = InputBox("Veuillez indiquer la semaine pour la copie de la feuille !")

    If Semaine <> "" Then

        On Error Resume Next
        Set Cls = Workbooks(Semaine & ".xlsm")

        If Err.Number <> 0 Then

            MsgBox "Le classeur '" & Semaine & ".xlsm' n'existe pas ou n'est pas ouvert !"
            Err.Clear
            Exit Sub

        End If

        Set Fe = Cls.Worksheets("TCD")

        Application.ScreenUpdating = False

        With ThisWorkbook

            Fe.Copy , .Sheets(.Sheets.Count)

            .Worksheets("TCD").ChartObjects("Graphique 2").Copy

            With .Worksheets("Tableau")

                .Activate
                .Range("A25").Select
                .Paste

            End With

        End With

        Application.ScreenUpdating = True

    End If

End Sub

C'est super !! Merci beaucoup

Rechercher des sujets similaires à "copier feuille fichier"