Autres Copie de'une feuille dans un tableur...

FOUQUET Yves

XLDnaute Occasionnel
Bonjour,

Dans les lignes de codes ci dessous, je désire copier un fichier "recept_adhe", qui n'est qu'une feuille Excel située dans D:\Gestion AHI V2\transfer
dans le tableur D:\Prog AHI V2\Données.xlsm en la renommant: Effectif.

J'ai une erreur de destination car cela fonctionne, mais les feuilles sont copiées dans "Prog001.xlsm" qui est le tableur sur lequel je lance la procédure.

Code:
[CODE=vb]

Dim strPath$, fichier$
Dim sourceWBK As Workbook, destiWBK As Workbook

'La procédure est lancée depuis D:\Gestion AHI V2\Prog001.xlsm

nomfichier = UserForm1.chemin2 & "\Donnees.xlsm"      ' --- D:\Gestion AHI V2\Donnees.xlsm
Set Ws = Workbooks.Open(nomfichier).Sheets("tbord")   '--- tbord est juste une feuille du tableur  Donnees.xlsm.
NomFichierComplet = UserForm1.chemin3 & "\"             '--- D:\Gestion AHI V2\transfer\recept_adhe.xlsm
strPath = NomFichierComplet                                           '--"D:\Gestion AHI V2\transfer"
fichier = "recept_adhe.xlsx"

Application.ScreenUpdating = False
Set sourceWBK = Workbooks.Open(strPath & fichier)
Set destiWBK = ThisWorkbook
sourceWBK.Sheets("Effectif").Copy before:=destiWBK.Sheets(1)   '-- destiWBK n'est pas bon

'--- La destination doit être: D:\Gestion AHI V2\Donnees.xlsm

sourceWBK.Close False

Merci de votre aide.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @FOUQUET Yves , le Forum

Pour ce genre de manip, il faut être très rigoureux et très clair dans la codification de l'algo, sinon on n'y comprend plus rien très vite... (J'ai eu du mal à déchiffrer ton code)

Donc je résume, Trois Classeurs :
  • XLD_FouquetYves_Classeur_Source.xlsx
  • XLD_FouquetYves_Classeur_Cible.xlsm
  • XLD_FOUQUET_Yves_Copy_Feuille_Between_2_Workbooks.xlsm
Le troisième est le programme qui contient Sub Sheet_Importer.

Le code devrait être écrit comme suit :

VB:
Option Explicit

Const CheminSource As String = "C:\Users\te\Documents\XLD\Test_Yves\" '<<<<<<<<<<<<<  A ADAPTER Je simule ton UserForm
Const CheminCible As String = "C:\Users\te\Documents\XLD\Test_Yves\Cibles\" '<<<<<<<  A ADAPTER Je simule ton UserForm

Sub Sheet_Importer()
Dim WBSource As Workbook, WBCible As Workbook
Dim WSSource As Worksheet, WSCible As Worksheet
Dim FileNameSource As String
Dim FileNameCible As String


FileNameSource = CheminSource & "XLD_FouquetYves_Classeur_Source.xlsx"
FileNameCible = CheminCible & "XLD_FouquetYves_Classeur_Cible.xlsm"

Application.ScreenUpdating = False

    Set WBSource = Workbooks.Open(FileNameSource)
    Set WSSource = WBSource.Worksheets("Effectif")
   
    Set WBCible = Workbooks.Open(FileNameCible)
    Set WSCible = WBCible.Worksheets("tbord")
   
        WSSource.Copy before:=WSCible
   
   
            WBSource.Close False
            WBCible.Close True

Application.ScreenUpdating = True

End Sub

Si tu as besoin j'ai encore les fichiers qui m'ont servi à tester...

Bien @ toi, à vous
@+Thierry
 
Dernière édition:

FOUQUET Yves

XLDnaute Occasionnel
Voilà comment j'ai solutionner et ça marche...
Je ne suis qu'un amateur qui tâtonne mais en procédant par élimination j'arrive à trouver des solutions; certes pas académique mais bon... Lol

VB:
Dim strPath$, str2Path$, fichier$, fichier2$
Dim sourceWBK As Workbook, destiWBK As Workbook

' CHEMIN ======
NomFichierComplet = UserForm1.chemin3 & "\"
nomfichierrecept = UserForm1.chemin2 & "\"

strPath = NomFichierComplet   '"D:\Gestion AHI V2\transfer"
str2Path = nomfichierrecept

fichier = "recept_adhe.xlsx"
fichier2 = "Donnees.xlsm"
Application.ScreenUpdating = False
Set sourceWBK = Workbooks.Open(strPath & fichier)
Set destiWBK = Workbooks.Open(str2Path & fichier2)
sourceWBK.Sheets("Effectif").Copy before:=destiWBK.Sheets(1) '-- destiWBK n'est pas bon
sourceWBK.Close False
 

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16