Private Sub Workbook_Open() [B]'macro qui se lance à l'ouverture du fichier[/B]
Dim col As Integer, prem_date As Single, nb_date_annee As Date, num_semaine As Integer, c As Range [B]'déclaration des variables[/B]
nb_date_annee = DateValue("1 janvier " & (Year(Date))) [B]'la variable nb_date_annee prend la valeur du 1 janvier de l'année[/B]
prem_date = nb_date_annee[B] 'changement de la date en numero[/B]
Sheets("Indicateur PPPS").Select [B]' selection de la feuille adequat[/B]
num_semaine = Abs(Date - prem_date) / 7 [B]'numero de la semaine=date du jour- 1° janvier de l'année/7 (valeur absolu: pas de virgule)[/B]
col = Rows(4).Find("en cours").Column [B]'on recherche sur la ligne 4 la valeur "en cours" et la variable col devient la colonne trouvée[/B]
If Cells(4, col - 3).Value = "s" & num_semaine Then Exit Sub[B] 'pour ne pas faire 2 copies[/B]
Columns(col - 2).Insert Shift:=xlToRight[B] 'on insert une colonne 2 colonnes avant[/B]
Range(Cells(4, col + 1), Cells(35, col + 1)).Copy [B]'on copy la colonne en cours[/B]
Cells(4, col - 2).Select [B]' on se positionne sur la colonne adequat[/B]
Selection.PasteSpecial Paste:=xlPasteValues [B]'et on copie les valeurs[/B]
Application.CutCopyMode = False [B]'annulation du mode copie (vide le presse papier)[/B]
Cells(4, col - 2).FormulaR1C1 = "s" & num_semaine [B]'on note le N° de la semaine ligne 4[/B]
Range("BG3").Select
End Sub