Bonjour

Je souhaite à partir d'un fichier de travail ( celui de base) prendre des données dans un fichier B, pour les coller dans un fichier C.
Mais j'ai un problème d'automation, je pense que j'utilise trop de ActiveWorkbook, mais je ne trouve pas de solution ... Pouvez-vous m'aider?
Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
Sub Copie_données(classeurDonnées As Workbook, classeurConso As Workbook, nom_fichier_bu As String)
 
 
Dim nbligne As Integer
Dim classeurActif As Workbook ' fichier Données
Dim classeurActif2 As Workbook 'fichier CONSO
 
Set classeurActif = classeurDonnées
Set classeurActif2 = classeurConso
'
'1ER traitement
'Je recupere mes données du Workbook Classuer Données
Workbooks(nom_fichier_Source).Activate
nbligne = classeurActif.Worksheets("Données").Range("B65536").End(xlUp).Row 'LE PB d'AUTOMATION EST ICI
 
Sheets("Données").Select
Range("A4:CI" & nbligne).Select
Selection.Copy
 
'Je les colle dans le workbook classeurConso
Workbooks("Conso_Mois.xlsm").Activate
Sheets("Données").Select
Range("A4").Select
Selection.Insert Shift:=xlDown
 
 
'2EME traitement
'Je recupere mes données du Workbook Classuer Données
Workbooks(nom_fichier_Source).Activate
nbligne = classeurActif.Worksheets("Emploi Ressources").Range("B65536").End(xlUp).Row
If nbligne > 4 Then
 
Sheets("Emploi Ressources").Select
If classeurActif.Worksheets("Emploi Ressources").Range("A4").Value = "Ne pas modifier cette ligne" Then
    Range("A5:CI" & nbligne).Select
    Selection.Copy
Else
    Range("A4:CI" & nbligne).Select
    Selection.Copy
End If
 
 
'Je les colle dans le workbook classeurConso
Workbooks("Conso_Mois.xlsm").Activate
Sheets("Emploi Ressources").Select
Range("A5").Select
Selection.Insert Shift:=xlDown
 
 
 
End If
Les deux traitements sont presque identiques.