Copier une feuille vers un autre classeur

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.

Bonjour

le problème vient du fait que le nom utiliser pour l'onglet que tu veux copier existe déjà dans le fichier de destination....

c'est d'ailleurs, si je me souviens bien, une question que t'avais posé au moment ou je t'ai fait la copie de l'onglet actif vers ton classeur de sauvegarde...

donc concrètement, car j'ai pas trop compris ton explication initiale, que veux tu faire quand tu essaye de copier un onglet dans le fichier de sauvegarde si cet onglet existe déjà ??

1) tu veux supprimer l'onglet initiale pour le remplacer par la nouvelle copie

2) tu ne copie pas le nouvel onglet (pas de mise a jour du fichier

3) tu veux garder les deux et dans ce cas comment renommé le nouvel onglet

fred

bonjour,

en fait je souhaite copier l'onglet actif vers un fichier spécial archive. Contrairement à ce que tu écris, l'onglet copié n'existe pas dans le fichier de destination. Il doit y avoir une sorte de lien qui ce crée entre les deux fichier et du coup en ouvrant mon fichier archive, le message d'erreur « désolé… ce nom est déjà attribué. Veuillez choisir un autre nom. » apparait.

Du coup je cherche moyen de copier l'onglet actif vers le fichier archive sans garder ce "lien" qui m’empêche de consulter ce fichier.

en outre, si j'apporte une modification ds mon fichier initial je ne veux peux qu'il ce mette à jour ds le fichier archive.

Voilà

Bonjour,

Ci dessous un code à tester ...

Sub copie_onglet_actif()

Dim chemin As String
Dim Fdest As String
Dim w1 As Workbook
Dim w2 As Workbook

'mise en mémoire du nom du fichier actif
Set w1 = ActiveWorkbook
'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)
  Set w2 = ActiveWorkbook
    'copie de l'onglet
  w1.ActiveSheet.Copy after:=w2.Sheets(Sheets.Count)
    'fermeture du fichier destination avec enregistremeent
  w2.Close True
Else
 MsgBox ("fichier de destination non trouvé")
End If
End Sub

bonjour,

j'ai essayé ton code mais j'ai toujours le même message d'erreur qui s'affiche.

Ca n'a rien changé malheureusement

Re,

Existe-t-il un ou des onglets cachés dans ton fichier Archive ...???

Salut,

A ma connaissance il n'y a pas d'onglets caché.

Bonjour,

Pour ton info, je viens de faire un test complet ... qui fonctionne ...

Si tu as du mal à adapter la solution ... faire une copie de tes deux fichiers ... les anonymiser ... et les joindre ...

Rechercher des sujets similaires à "copier feuille classeur"