Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Microsoft 365Mettre en surbrillance la ligne active d'un tableau
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'si on ne clique PAS dans le tableau==> on quitte
If Intersect(Target, ActiveSheet.ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
Application.EnableEvents = False 'on désactive les évènements
ligne = Target.Row 'on récupère le numéro de ligne de la cellule sélectionnée
With ActiveSheet.ListObjects(1) 'dans le tableau structuré (1 = le premier de la feuille)
FirstLine = .DataBodyRange.Rows(0).Row 'position de la première ligne du tableau = ligne d'entete
.DataBodyRange.Rows(ligne - FirstLine).Select 'on selectionne la ligne (-FirstLine pour "compenser" la position du tableau dans la feuille
End With
Target.Activate 'on active la...
Merci beaucoup pour ton retour rapide.
Mais histoire de faire plus propre (pour mon cas), Est-il possible de n'agir que sur la ligne et pas la colonne; et si possible limité au tableau et pas la ligne entière... 😅
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'si on ne clique PAS dans le tableau==> on quitte
If Intersect(Target, ActiveSheet.ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
Application.EnableEvents = False 'on désactive les évènements
ligne = Target.Row 'on récupère le numéro de ligne de la cellule sélectionnée
With ActiveSheet.ListObjects(1) 'dans le tableau structuré (1 = le premier de la feuille)
.DataBodyRange.Rows(ligne - 1).Select 'on selectionne la ligne (-1 pour "compenser" la position du tableau dans la feuille
End With
Target.Activate 'on active la cellule selectionnée
Application.EnableEvents = True 'on réactive les évènements
End Sub
ça marche !
Mais que si je sélectionne une cellule vide. Autrement, il ne se passe rien sinon... 🤔
C'est exactement l'inverse qu'il me faut.... En principe je n'ai aucune cellule vide...
ça marche !
Mais que si je sélectionne une cellule vide. Autrement, il ne se passe rien sinon... 🤔
C'est exactement l'inverse qu'il me faut.... En principe je n'ai aucune cellule vide...
En fait je me rends compte que ça surligne la ligne sélectionnée + 2 (ex: je me positionne en ligne 5 et c'est la 7 qui se mets en surbrillance)
De plus la surbrillance ne fonctionne que si je fige des volets (Horizontal et Vertical)
Et si je me positionne sur la dernière ligne du tableau, la ligne +2 (donc hors tableau) se mets en surbrillance)
J'essaie de t'envoyer une copie du tableau pour que tu puisses mieux voir.
Merci beacoup.
En fait je me rends compte que ça surligne la ligne sélectionnée + 2 (ex: je me positionne en ligne 5 et c'est la 7 qui se mets en surbrillance)
De plus la surbrillance ne fonctionne que si je fige des volets (Horizontal et Vertical)
Et si je me positionne sur la dernière ligne du tableau, la ligne +2 (donc hors tableau) se mets en surbrillance)
J'essaie de t'envoyer une copie du tableau pour que tu puisses mieux voir.
Merci beacoup.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'si on ne clique PAS dans le tableau==> on quitte
If Intersect(Target, ActiveSheet.ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
Application.EnableEvents = False 'on désactive les évènements
ligne = Target.Row 'on récupère le numéro de ligne de la cellule sélectionnée
With ActiveSheet.ListObjects(1) 'dans le tableau structuré (1 = le premier de la feuille)
FirstLine = .DataBodyRange.Rows(0).Row 'position de la première ligne du tableau = ligne d'entete
.DataBodyRange.Rows(ligne - FirstLine).Select 'on selectionne la ligne (-FirstLine pour "compenser" la position du tableau dans la feuille
End With
Target.Activate 'on active la cellule selectionnée
Application.EnableEvents = True 'on réactive les évènements
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'si on ne clique PAS dans le tableau==> on quitte
If Intersect(Target, ActiveSheet.ListObjects(1).DataBodyRange) Is Nothing Then Exit Sub
Application.EnableEvents = False 'on désactive les évènements
ligne = Target.Row 'on récupère le numéro de ligne de la cellule sélectionnée
With ActiveSheet.ListObjects(1) 'dans le tableau structuré (1 = le premier de la feuille)
FirstLine = .DataBodyRange.Rows(0).Row 'position de la première ligne du tableau = ligne d'entete
.DataBodyRange.Rows(ligne - FirstLine).Select 'on selectionne la ligne (-FirstLine pour "compenser" la position du tableau dans la feuille
End With
Target.Activate 'on active la cellule selectionnée
Application.EnableEvents = True 'on réactive les évènements
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD