Bonjour,
Merci pour votre aide.
Si je rajoute colonne B une date inférieure à la dernière date du tableau et que je fais un tri sur les dates, la colonne A ne se met pas à jour.
Elle ne se met pas à jour si vous incluait la colonne A dans votre tri car les formules conservent leurs cellules de référence dans leur formules.
Si vous triez uniquement sur les colonnes B:E sans la colonne A alors les infos en colonne A sont correctes car les formules ne sont pas modifiées.
La colonne A contient vos formules analysant la colonne B, donc si vous triez en B alors les formules en colonne A se remettent à jour. Où est le souci ? En quoi cela vous semble compliqué ?
Je ne sais pas ce que vous avez fait ou modifié, mais dans votre colonne A les formules sont fausses.
Faites dans l'onglet Formules, Afficher les formules. et vous obtenez ça :
On voit que de la ligne 2 à 15 les formules sont bonnes, mais ensuite elles sont fausses.
Par ex dernière ligne , ligne 33 il est fait référence à B31.
Un conseil, comme vous avez un tableau structuré, utilisez sa puissance.
En colonne A remplacez la formule par :
Testez cette PJ, j'y ai fait les modifs, et les formules en colonne A restent correcetes après un tri car elles références toujours à Tableau33[[#Cette ligne] sans référence au N° de ligne.
C'était une simple taquinerie.
Mais la bonne question à poser ici aurait été "Pouvez vous corriger mes formules en colonne A." plutôt que "mon tri s'effectue mal." car il faut toujours corriger la cause du problème et non son effet.
Très franchement, je ne comprend plus rien à votre raisonnement.
1- Titre du fil : Protection dans une feuille.
2- On met dans la macro : ActiveSheet.Protect
3- Et vous rajoutez juste après ActiveSheet.Unprotect
Alors autant simplifier la macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [B:B]) Is Nothing Then Cells(Target.Row, "B").Select
End If
Fin:
End Sub
Oups !!! Retirez le End If . J'ai oublié de le faire.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [B:B]) Is Nothing Then Cells(Target.Row, "B").Select
Fin:
End Sub