Probleme Automation - Utilisation de plusieurs Workbook
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:
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.