zebanx
XLDnaute Accro
Bonjour,
Suite à l'aide bien utile de Pierre-Jean (merci!!) concernant des copies automatiques entre fichiers ouverts sur une feuille ayant le même nom ("annee"), je cherche à rendre cette donnée de "nom" de wks variable pour la copie de données entre des fichiers ouverts (d'un même répertoire pour information.).
Les données actualisées sont récupérées dans un fichier MASTER.
Elles doivent ensuite faire l'objet d'une copie partielle, pour chaque WKS du master vers un WBK d'affectation (=feeder) qui sera dans le même répertoire.
- Pour la correspondance, le nom de la WKS est identique entre le fichier MASTER et chacun des fichiers FEEDER (ie : cible + numéro WBK).
- Les noms des Workbooks des FEEDER ne comportent pas spécialement le même nombre de caractères
- Seules les 3 premières colonnes doivent être recopiées en VALEUR (ou FORMULE) et sur le range "A10" pour chaque WKS du feeder.
J'ai commencé deux codes ("boucle 1 et boucle 2") mais ils ne fonctionnent pas.
Pourriez-vous m'apporter vos lumières sur les corrections à apporter ?
Vous en remerciant, cdlt
thierry
Ci-joint les deux fichiers et le code de la boucle 2
Sub Boucle2()
Dim CT As Workbook
Dim OT As Worksheet
Dim DEST As Range
Dim C As Workbook
Dim O As Worksheet
Dim Cstart As Workbook
Dim i As Integer
On Error Resume Next
Set CT = Workbooks("wks_master.xls") 'définit le classeur de travail CT
Set OT = CT.Sheets(i) 'définit l'onglet de travail OT
Set Cstart = Workbooks("start.xls")
On Error GoTo 0
Application.ScreenUpdating = False
If Not Cstart Is Nothing Then Cstart.Close False
For Each C In Application.Workbooks 'boucle 1 : sur tous les classeurs ouverts
If Not C.Name = CT.Name Then 'condition : si le classeur n'est pas CT
On Error Resume Next
OT.Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row).Copy Destination:=C.Sheets(i).Range("A10")
On Error GoTo 0
C.Save
C.Close
End If 'fin de la condition 1
Next C 'prochain classeur de la boucle 1
'Fin:
Range("B1").Select
End Sub
Suite à l'aide bien utile de Pierre-Jean (merci!!) concernant des copies automatiques entre fichiers ouverts sur une feuille ayant le même nom ("annee"), je cherche à rendre cette donnée de "nom" de wks variable pour la copie de données entre des fichiers ouverts (d'un même répertoire pour information.).
Les données actualisées sont récupérées dans un fichier MASTER.
Elles doivent ensuite faire l'objet d'une copie partielle, pour chaque WKS du master vers un WBK d'affectation (=feeder) qui sera dans le même répertoire.
- Pour la correspondance, le nom de la WKS est identique entre le fichier MASTER et chacun des fichiers FEEDER (ie : cible + numéro WBK).
- Les noms des Workbooks des FEEDER ne comportent pas spécialement le même nombre de caractères
- Seules les 3 premières colonnes doivent être recopiées en VALEUR (ou FORMULE) et sur le range "A10" pour chaque WKS du feeder.
J'ai commencé deux codes ("boucle 1 et boucle 2") mais ils ne fonctionnent pas.
Pourriez-vous m'apporter vos lumières sur les corrections à apporter ?
Vous en remerciant, cdlt
thierry
Ci-joint les deux fichiers et le code de la boucle 2
Sub Boucle2()
Dim CT As Workbook
Dim OT As Worksheet
Dim DEST As Range
Dim C As Workbook
Dim O As Worksheet
Dim Cstart As Workbook
Dim i As Integer
On Error Resume Next
Set CT = Workbooks("wks_master.xls") 'définit le classeur de travail CT
Set OT = CT.Sheets(i) 'définit l'onglet de travail OT
Set Cstart = Workbooks("start.xls")
On Error GoTo 0
Application.ScreenUpdating = False
If Not Cstart Is Nothing Then Cstart.Close False
For Each C In Application.Workbooks 'boucle 1 : sur tous les classeurs ouverts
If Not C.Name = CT.Name Then 'condition : si le classeur n'est pas CT
On Error Resume Next
OT.Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row).Copy Destination:=C.Sheets(i).Range("A10")
On Error GoTo 0
C.Save
C.Close
End If 'fin de la condition 1
Next C 'prochain classeur de la boucle 1
'Fin:
Range("B1").Select
End Sub