Bonsoir,
tout d'abord veuillez m'excuser de ne pas vous avoir "reconnu" ! Après tant d'échange pour "Rétro-Planning de Gantt" ! Fonctionne t il toujours ou bien êtes vous passé à autre chose ? Pas de craintes, si c'est le cas vous pouvez le dire, c'est la vie !
Pour annuler la fonction "Unique" il suffit de... Mais attention ! Vous perdrez la possibilité de "filtrer" les opérations d'une fonction unique !
Mais si telle est votre demande alors il suffit d'aller sous VBA dans le module "Routines" et trouver ce code :
Sub mise_a_jour_affichage(Target)
'
' permet de réinitialiser l'affichage de la fiche personnel suite à une modification :
' 1° - modification d'une des qualifications
' 2° - utilisation de l'option "unique"
'
With Sheets(nom_feuille)
.Unprotect
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlManual
End With
If Not Intersect(Target, .Range("E1:M1,E4:M4")) Is Nothing Then
.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("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).Value = Range("AF" & [décalage] + 2 & ":AF" & [nb_opérations] + [décalage] + 1).Value
.Range("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
If Not Intersect(Target, .Range("E3:M3,E6:M6")) Is Nothing Then
If Target.Value = "Unique" Then
.Range("E3:M3,E6:M6").Value = ""
Target.Value = "Unique"
Else
.Range("E3:M3,E6:M6").Value = ""
End If
.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("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).Value = Range("AF" & [décalage] + 2 & ":AF" & [nb_opérations] + [décalage] + 1).Value
.Range("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
On Error Resume Next
ActiveWindow.SmallScroll up:=200
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With
.Protect
End With
End Sub
Puis de mettre en commentaire la partie référençant la ligne 3 et 6 de la colonne E à M, comme ceci :
Sub mise_a_jour_affichage(Target)
'
' permet de réinitialiser l'affichage de la fiche personnel suite à une modification :
' 1° - modification d'une des qualifications
' 2° - utilisation de l'option "unique"
'
With Sheets(nom_feuille)
.Unprotect
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlManual
End With
If Not Intersect(Target, .Range("E1:M1,E4:M4")) Is Nothing Then
.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("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).Value = Range("AF" & [décalage] + 2 & ":AF" & [nb_opérations] + [décalage] + 1).Value
.Range("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
' If Not Intersect(Target, .Range("E3:M3,E6:M6")) Is Nothing Then
' If Target.Value = "Unique" Then
' .Range("E3:M3,E6:M6").Value = ""
' Target.Value = "Unique"
' Else
' .Range("E3:M3,E6:M6").Value = ""
' End If
' .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("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).Value = Range("AF" & [décalage] + 2 & ":AF" & [nb_opérations] + [décalage] + 1).Value
' .Range("AK" & [décalage] + 2 & ":AK" & [nb_opérations] + [décalage] + 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
' End If
On Error Resume Next
ActiveWindow.SmallScroll up:=200
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With
.Protect
End With
End Sub
Maintenant à vous de créer une liste de choix sur ces 2 lignes sur toutes les fiches des personnels ainsi que sur la feuille vierge. Bonne chance !
@ bientôt
LouReeD