Copier une feuille d'un classeur vers un autre


#1

Bonjour à toutes et à tous,

Je suis nouveau dans la programmation VBA. Je me permet de vous demandez un service. J’ai fait le tour sur Internet de ma question et j’ai rien trouvé de concret. Je suis utilisateur d’Excel 2010.

Dans le cadre du boulot, on effectue plusieurs modifications sur les fichiers Excel semblable, mais lorsque l’on traite un fichier ce dernier n’a pas forcement reçu la modifications. Donc j’aimerais bien à partir d’un fichier Excel centralisé ( qui contiendra toutes les mise à jour ), créer une macro dans le fichier annexe qui ira sélectionner le fichier centralisé et coller toute les modifications réalisé.

Pour l’instant j’ai une macro qui :
-Selectionne et ouvre le fichier Excel centralisé
-Demande qu’elle feuille du fichier centralisé à copier
-Copie du fichier centralisé vers fichier annexe
-Copie la feuille souhaité en créer une nouvelle sur le fichier annexe

Actuellement mon problème est lorsque je veux coller les données sur une feuille existante ( le but final ) m’ai impossible.
Quelqu’un peut-il m’aider ?

Merci à vous toutes et tous

Voici le code :

[code=vb]Sub macro1()

Dim nom_classeurB As String
Dim Classeur_B As Workbook
Dim nom_feuilleB As String
Dim ws As Worksheet
Dim Feuille_B As Worksheet
Dim rep_ok As Boolean
Dim nouveau_nom As String

rep_ok = False

With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = “C:”
.Title = “Veuillez sélectionner le fichier”
.ButtonName = “Choisir ce classeur”
.Show

If .SelectedItems.Count = 1 Then
    nom_classeurB = .SelectedItems(1)
Else
    msgErr = "Vous n'avez pas choisi de fichier"
    MsgBox msgErr, vbInformation, "Arrêt"
    End
End If

End With

Set Classeur_B = Workbooks.Open(nom_classeurB)

Do While rep_ok = False
nom_feuilleB = InputBox(“Quelle est le nom de la feuille à copier ?”)

For Each ws In Classeur_B.Worksheets
    If ws.Name = nom_feuilleB Then
        Set Feuille_B = ws
        rep_ok = True
    End If

Next

If rep_ok = False Then
    MsgBox "Nom de feuille introuvable", vbInformation, "Oupss!"
End If

Loop

nouveau_nom = InputBox(“Quel est le nouveau nom de la feuille”)

Feuille_B.Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)

Classeur_B.Close False

With ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
.Name = nouveau_nom
.Select
End With

End Sub

[/code]


#2

Bonjour!

Je ne suis pas sur d’avoir bien compris ta question.
Pourrais tu nous donner plus de détails stp et si possible inclure un fichier d’exemple?

Merci et à bientôt


#3

Bonjour,

Pour résumer plus simplement
J’ai un fichier A Excel qui contient une seule feuille, où les informations sont constamment modifiés.
Dans un autre fichier B Excel j’ai plusieurs feuilles, mais qui contient une feuille qui est semblablement la même feuille du fichier A.
D’où j’aimerais créer une macro qui copie la feuille de A et qui la colle dans B dans sa bonne feuille du fichier B.

Si ce n’est toujours pas plus claire, je reste à votre entière disposition.