Copier feuille d'un classeur fermé dans un autre classeur
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 :
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