Sub mise_a_jour_affichage(vTarget As Range)
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlManual
End With
If Not Intersect(vTarget, Range("E1:M1")) Is Nothing Then
ActiveSheet.Calculate
' on sélectionne toutes les lignes et on montre
Range(Cells([décalage] + 1, [décalage] + 1), Cells([nb_opérations] + [décalage] + 2, [nb_opérations] + [décalage] + 2)).EntireRow.Hidden = False
' on boucle toutes les lignes qui contiennes des opérations
Range("AB" & [décalage] + 2 & ":AB" & [nb_opérations] + [décalage] + 1).Value = Range("W" & [décalage] + 2 & ":W" & [nb_opérations] + [décalage] + 1).Value
Range("AB" & [décalage] + 2 & ":AB" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
'ici je trouve ton If pour le moins bizarre, non ??
If Not Intersect(vTarget, Range("E4:M4")) Is Nothing Then
If vTarget.Value = "Unique" Then
Range("E4:M4").Value = ""
vTarget.Value = "Unique"
Else
Range("E4:M4").Value = ""
End If
ActiveSheet.Calculate
' on sélectionne toutes les lignes et on montre
Range(Cells([décalage] + 1, [décalage] + 1), Cells([nb_opérations] + [décalage] + 2, [nb_opérations] + [décalage] + 2)).EntireRow.Hidden = False
' on boucle toutes les lignes qui contiennes des opérations
Range("AB" & [décalage] + 2 & ":AB" & [nb_opérations] + [décalage] + 1).Value = Range("W" & [décalage] + 2 & ":W" & [nb_opérations] + [décalage] + 1).Value
Range("AB" & [décalage] + 2 & ":AB" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With
End Sub