Sub test()
// initialisations des variables à des fins de test
equipe = "OL"
CptMatricule = 2
mois_en_cours = 4
annee = 2009
CptMatricule_masse = 3
mois_en_cours = 3
'Méthode avec activation du classeur cible
With Workbooks("Budget 2009 " & equipe & ".xls").Sheets("+9 salaries")
Workbooks(equipe & " " & mois_en_cours & " " & annee & ".xls").Activate
Union(.Cells(CptMatricule, .[heure_budget].Column), .Cells(CptMatricule, .[total_budget].Column)).Copy ActiveWorkbook.Worksheets("mass_sal").Cells(CptMatricule_masse, [heure_masse].Column)
End With
'Méthode sans activation du classeur
Dim sourceWorkbook As Workbook
Dim cibleWorkbook As Workbook
Dim sourceFeuille As Worksheet
Dim cibleFeuille As Worksheet
Dim sourceRange As Range
Dim cibleRange As Range
Set sourceWorkbook = Workbooks("Budget 2009 " & equipe & ".xls")
Set cibleWorkbook = Workbooks(equipe & " " & mois_en_cours & " " & annee & ".xls")
Set sourceFeuille = sourceWorkbook.Worksheets("+9 salaries")
Set cibleFeuille = cibleWorkbook.Worksheets("mass_sal")
With sourceFeuille
Set sourceRange = Union(.Cells(CptMatricule, .[heure_budget].Column), .Cells(CptMatricule, .[total_budget].Column))
End With
With cibleFeuille
Set cibleRange = .Cells(CptMatricule_masse, [heure_masse].Column)
End With
sourceRange.Copy cibleRange
End Sub