XL 2010 Copier/Coller un onglet dans un fichier Excel

tonytone

XLDnaute Nouveau
Bonjour tout le monde,

Je suis nouveau dans le domaine du codage. En tout j'ai developpé trois codes au plus.
Actuellement je suis en train de faire une macro Dans un fichier excel permettant de copier un onglet d'un fichier Excel se trouvant dans un repertoire et serveur X vers mon fichier de traitement de données sur lequelle je vais appliquer un tableau croisé dynamique.

J'ai donc crée un bouton d'execution dont le code est le suivant :

Sub Copier_et_sauver_un_fichier_Excel()

' Copier un fichier dans un autre dossier sans l'ouvrir
' Variables
Dim chemin_fichier As String
Dim chemin_destination As String
'Identifier le chemin du fichier (original)
chemin_fichier = Application.GetOpenFilename(, , "W:\ERP LUX\SGI\SOUM_F.XLS")
'identifier le chemin du fichier (Destination)
chemin_destination = "Z:\Nouveau fichier.xls"
'Copier le fichier sans l'ouvrir
FileCopy chemin_fichier, chemin_destination
'message de confirmation
MsgBox (" Succès ! ")
End Sub

J'ai une erreur sur la ligne

FileCopy chemin_fichier, chemin_destination

Erreur 53 . Fichier introuvable

Ce n'est que le début et j'ai déjà une erreur.

Merci d'avance pour votre aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Tonytone, bonjour le forum,

Pas sûr d'avoir bien compris. Tu parles de copier un onglet et tu codes pour copier un fichier !?...
J'aurais plutôt écrit un code de ce style (a adapter à ton cas), placé dans le classeur de réception :

VB:
Sub Macro1()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)

Set CD = ThisWorkbook 'définit le classeur destination
Set OD = CD.Worksheets(CD.Worksheets.Count) 'définit l'onglet destination (ici j'ai pris le dernier onglet du classeur destination, tu adapteras...)
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CS = Workbooks("SOUM_F.XLS") 'définit le classeur source CS (génère une erreur si ce classeur n'est pas ouvert)
If Err <> 0 Then 'condition : si un erreur a été générée
    Err.Clear 'efface l'erreur
    Set CS = Workbooks.Open("W:\ERP LUX\SGI\SOUM_F.XLS") 'définit le classeur source en l'ouvrant
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
Set OS = CS.Worksheets(1) 'définit l'onglet source (ici j'ai pris le premier onglet su classeur source, tu adapteras)
OS.Copy after:=OD 'copy l'onglet source après l'onglet destination
End Sub
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
362
Réponses
1
Affichages
269
Compte Supprimé 979
C