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:
Les deux traitements sont presque identiques.
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
Partager