Bonjour,
J’aurai besoin d’un peu d’aide pour copier une feuille excel dans un fichier spécifique.
Grace à cette macro sur la feuille 1, je renomme automatiquement l’onglet suivant une période de recherche. Ex : du 01/05 au 30/05 l’onglet est renommé « mai 2015 »
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
i = 7
a = 1
Do While Cells(i, 3) <> ""
nom = Cells(i, 3)
Sheets(a).Name = nom
i = i + 1
a = a + 1
Loop
End Sub
Jusque-là tout fonction parfaitement. Puis j’utilise la macro suivante pour copier l’onglet actif vers le fichier cité ci-dessus.
Sub copie_onglet_actif()
Dim chemin As String
Dim Fdest As String
Dim Fsource As String
'mise en mémoire du nom du fichier actif
Fsource = ActiveWorkbook.Name
'chemin a adapter
chemin = "C:\Users\Filipe\Desktop\"
'nom du fichier destination
Fdest = "archive.xlsm"
'verification de l'existence du fichier de destination
If Dir(chemin & Fdest) <> "" Then
'ouverture du fichier destination
Workbooks.Open (chemin & Fdest)
'copie de l'onglet
Workbooks(Fsource).ActiveSheet.Copy after:=ActiveWorkbook.Sheets(Sheets.Count)
'fermeture du fichier destination avec enregistremeent
ActiveWorkbook.Close True
Else
MsgBox ("fichier de destination non trouvé")
End If
End Sub
Le problème est que lorsque j’ouvre mon fichier archive et clic quelque part, j’ai ce message d’erreur qui s’affiche « désolé… ce nom est déjà attribué. Veuillez choisir un autre nom. »
Le problème vient de cette ligne « Sheets(a).Name = nom »
Quelqu’un saurait-il comment je pourrais copier la feuille active vers mon fichier archive sans garder de lien. Par exemple si je change quelque chose dans mon fichier source, je ne veux pas que cette modification apparaisse dans mon fichier archive.