[VIDEO]Comment surligner la ligne de la cellule sélectionnée

Dans ce nouveau tutoriel, nous allons répondre à une question qui revient souvent : comment mettre en évidence la ligne dans laquelle se trouve la cellule sélectionnée. Nous allons voir deux méthodes qui vont permettent d’arriver au même résultat attendu. Ces deux techniques avancées, ont l’avantage de préserver la mise en forme d’origine du classeur lorsqu’une nouvelle ligne est sélectionnée

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

Partie 1 :


Partie 2 :

 

 

1. Première méthode

 

Cette première méthode est la plus simple à mettre en place. Elle va consister à stocker le numéro de la ligne sélectionnée, puis d’appliquer une mise en forme conditionnelle sur la ligne concernée.

Nous allons donc procéder de la manière suivante :

  • Nous sélectionnons une cellule vide du classeur, en cliquant simplement dessus (par exemple la cellule située aux coordonnées « G1 », comme le montre l’illustration ci-dessous),

Excel formation - Comment surligner la ligne active - 01

  • Puis nous lui donnons un nom simple, que nous réutiliserons par la suite. Pour donner un nom à une cellule, il suffit de le saisir dans la zone de nom en haut à gauche. Ne pas oublier de valider en appuyant sur la touche [Entrée] du clavier. Dans notre exemple, donnons le noms « _maLigne » à la cellule « G1 »,

Excel formation - Comment surligner la ligne active - 02

  • Pour l’exemple, nous allons donner le numéro d’une ligne comme valeur pour cette cellule (nous verrons juste après comment modifier automatiquement la valeur de la cellule). Par exemple la ligne 6

Excel formation - Comment surligner la ligne active - 03

À présent, nous disposons d’une cellule que nous pouvons appeler simplement (« =_maLigne ») et qui contient le numéro de la ligne que nous souhaitons mettre en surbrillance.

Pour ce faire, nous allons utiliser la fonctionnalité de mise-en-forme conditionnelle d’Excel, qui comme son nom l’indique clairement permet de personnaliser les paramètres de mise-en-forme d’une ou plusieurs cellules lorsqu’une ou plusieurs conditions sont effectivement remplies :

  • Commençons par sélectionner les cellules sur lesquelles se trouve les lignes que nous souhaitons surligner. Pour cela, il suffit de placer le curseur sur la première d’entre elles, puis de faire glisser la souris jusqu’à sélectionner toutes les cellules

Excel formation - Comment surligner la ligne active - 04

  • Pour sélectionner plusieurs groupes de cellules (par exemple pour sélectionner nos quatre tableaux), il suffit de garder la touche [Ctrl] du clavier en foncée, puis de sélectionner chacune des différentes zones, sans relâcher ce dernier

Excel formation - Comment surligner la ligne active - 05

  • Pour insérer la mise-en-forme conditionnelle, rendez-vous dans l’onglet Accueil du ruban, puis cliquez sur Mise en forme conditionnelle > Nouvelle règle

Excel formation - Comment surligner la ligne active - 06

  • Dans la fenêtre qui s’affiche, choisissez l’option « Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué »

Excel formation - Comment surligner la ligne active - 07

  • Puis saisissez la formule suivante, comme le montre l’illustration ci-dessus : « =LIGNE(E18)=_maLigne ». Remplacez les coordonnées de la cellule par celles de la cellule sélectionnée (vous retrouverez ces coordonnées dans la zone de nom en haut à gauche),
  • Puis cliquez sur le bouton Format… afin de personnaliser la mise en forme que nous souhaitons appliquer, en choisissant par exemple un fond de couleur bleu foncé et une police de caractères blanche :

Excel formation - Comment surligner la ligne active - 08

  • Enfin, vous pouvez valider en appuyant sur les deux boutons [OK] successifs

À présent, vous pourrez constater que la ligne dont le numéro correspond à la valeur de la cellule _maLigne possède un fond de couleur bleu

Excel formation - Comment surligner la ligne active - 09

Changez la valeur de cette cellule et la ligne en surbrillance va elle aussi être modifiée :

Excel formation - Comment surligner la ligne active - 10

La dernière opération à mettre en place pour cette première méthode va consister à modifier automatiquement la valeur contenue dans la cellule « _maLigne » avec le numéro de la ligne contenant la cellule sélectionnée.

Pour cela, nous allons insérer un petit bout de macro-commande en VBA dans le code de la feuille de calcul :

  • Commençons par effectuer un clic-droit sur l’onglet de la feuille de calcul, afin de sélectionner l’option « Visualiser le code » :

Excel formation - Comment surligner la ligne active - 11

  • Cela permet d’ouvrir l’outil de développement des macro-commandes d’Excel (VBA) directement sur le code de la feuille de calcul (attention, le code que nous allons saisir ne sera accessible que depuis cette feuille de calcul)

Excel formation - Comment surligner la ligne active - 12

  • La commande que nous allons saisir devra être lancée automatiquement par Excel à chaque fois que l’utilisateur va sélectionner une cellule. Nous allons donc insérer notre code à l’intérieur d’une procédure évènementielle
  • Dans le menu déroulant situé au-dessus de la zone de saisie du code, nous allons sélectionner « Worksheet », puis dans le second menu « SelectionChange »

Excel formation - Comment surligner la ligne active - 13

  • Excel va allors aujouter automatiquement une procédure portant le nom de « Worksheet_SelectionChange(ByVal Target As Range) ». Il s’agit d’un évènement qui sera lancé à chaque fois qu’une nouvelle cellule va être sélectionnée. La cellule sélectionnée va être retournée dans la variable « Target ».
  • Pour insérer le numéro de la ligne sélectionnée dans la cellule _maLigne, nous allons uniquement insérer la ligne de code suivante dans cette procédure :

Excel formation - Comment surligner la ligne active - 14

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("_maLigne") = ActiveCell.Row
End Sub

Vous pouvez maintenant tester de sélectionner une cellule pour constater que la ligne en surbrillance va maintenant s’adapter à la cellule sélectionnée.

Excel formation - Comment surligner la ligne active - 15

 

2. Seconde méthode « Full VBA »

 

Dans cette seconde méthode, l’ensemble de la logique va être intégrée dans la procédure évènementielle de VBA afin de pouvoir s’adapter à tous les cas de figure auxquels nous allons pouvoir être confronté.

Pour commencer, nous allons supprimer les éléments que nous avons mis en place dans la première partie :

  • Suppression de la cellule _maLigne : sélectionnez la cellule, puis à l’aide du menu contextuel qui s’affiche lorsque l’on effectue un clic-droit sur celle-ci, choisissez « Supprimer… » :

Excel formation - Comment surligner la ligne active - 16

  • Dans la fenêtre suivante, optez pour l’option « Décaler les cellules vers la gauche », puis validez en cliquant sur le bouton [OK] :

Excel formation - Comment surligner la ligne active - 17

  • Suppression de la mise-en-forme conditionnelle : Dans menu Accueil du ruban, rendez-vous dans « Mise en forme conditionnelle » > « Gérer les règles… »

Excel formation - Comment surligner la ligne active - 18

  • Dans la fenêtre qui s’affiche, choisissez « Cette feuille de calcul », puis sélectionnez la règle et cliquez sur le bouton « Supprimer la règle » :

Excel formation - Comment surligner la ligne active - 19

Excel formation - Comment surligner la ligne active - 20

À présent, nous allons modifier l’événement « Worksheet_SelectionChange » afin de modifier automatiquement la ligne à modifier. Pour en savoir plus sur cette procédure particulière de VBA, je vous invite à retourner dans la première partie de cet article.

Tout d’abord, nous allons vouloir supprimer toute mise-en-forme conditionnelle déjà définie, afin d’éviter que celles-ci ne se rajoutent indéfiniment à chaque fois que nous allons cliquer sur de nouvelles cellules. Pour cela nous allons utiliser l’instruction Delete de FormatConditions :

Excel formation - Comment surligner la ligne active - 21

 

    Cells.FormatConditions.Delete

Comme vous pouvez le voir, nous appliquons cette instruction sur l’ensemble des cellules de la feuille de calcul (« Cells »).

Puis nous allons ajouter une nouvelle mise-en-forme conditionnelle :

Excel formation - Comment surligner la ligne active - 22

Private Sub Worksheet_SelectionChange(ByVal Target As Range
    Cells.FormatConditions.Delete
     With ActiveCell.CurrentRegion.FormatConditions.Add(Type:=xlExpression, Formula1:="=LIGNE(" & ActiveCell.CurrentRegion.Cells(1).Address(False, False) & ")=" & ActiveCell.Row) '1
        .Font.ColorIndex = 2        ' 2
        .Interior.ColorIndex = 32   ' 3
    End With    '4 
End Sub

Ces lignes se décomposent de la manière suivante :

  • 1 : Dans cette première ligne, nous ajoutons une nouvelle mise-en-forme conditionnelle dans la pile des mise-en-formes conditionnelles de la feuille de calcul (qui est vide vu que nous venons juste de supprimer toute mise-en-forme conditionnelle existante).
  • Cette mise-en-forme conditionnelle est à insérer dans le tableau dans lequel se trouve la cellule sélectionnée (ActiveCell.CurrentRegion), ce qui permet de ne sélectionner la ligne qu’à l’intérieur de ce dernier. Nous choisissons d’activer la mise en forme conditionnelle lorsque que la formule suivante renvoie pour valeur « VRAI » : « =LIGNE(" & ActiveCell.CurrentRegion.Cells(1).Address(False, False) & ")=" & ActiveCell.Row ». Il s’agit de la même formule que celle que nous avions saisie dans la première partie de cet article, mais rendue dynamique grâce à l’utilisation de variables : « ActiveCell.CurrentRegion.Cells(1).Address(False, False) » : il s’agit ici de récupérer les coordonnées de la première cellule du tableau sélectionné (« CurrentRegion.Cells(1) »).
  • Attention nous souhaitons que cette mise-en-forme conditionnelle s’applique à l’ensemble des cellules de la région en cours, nous devons donc récupérer les coordonnées relatives de cette cellule, d’où les paramètres « False » appliqués à l’instruction Address.
  • Enfin, nous vérifions si chaque de ces cellule à le même numéro de ligne que la cellule sélectionnée (« =LIGNE(…)=ActiveCell.Row ».
  • Vous noterez au passage que cette ligne commence par une instruction With, ce qui permet de définir directement un ensemble de paramètres à cette mise-en-forme conditionnelle
  • 2 : Nous appliquons la couleur blanche aux textes,
  • 3 : Ainsi qu’un fond de couleur bleu
  • 4 : Enfin nous refermons le With

Et voilà , c’est tout !

Vous pouvez tester, et si vous avez suivi à la lettre le déroulement de cet article, les lignes de chacun de nos tableaux devraient passer en surbrillance lorsqu’une cellule est sélectionnée.

Excel formation - Comment surligner la ligne active - 23

 

3. Technique avancée pour conserver les mises en forme conditionnelles déjà définies

Comme nous l’avons découvert dans la partie précédente de ce tutoriel, pour éviter qu’un grand nombre de règles de mise en forme conditionnelles ne se cumulent dans une feuille de calcul, nous purgeons celles qui pourraient déjà être définie en utilisant la ligne suivante :

 

Cells.FormatConditions.Delete

 

Ce qui permet de supprimer toute mise en forme existante au sein de la feuille de calculs !

Et c’est justement là le problème…

En effet, si nous avions déjà défini des règles de mise en forme conditionnelle, alors celles-ci seraient également supprimées, car cette astuce ne fait aucune distinction dans les mises en forme conditionnelles en supprimant les supprimant toutes !

Heureusement, nous allons maintenant découvrir une astuce qui va nous permettre d’identifier spécifiquement les mises en forme nous devons supprimer.

L’astuce que nous allons découvrir maintenant consiste à poser une étiquette sur la mise en forme conditionnelle afin de pouvoir l’identifier facilement et de ne supprimer que celle-ci !

Pour cela nous allons modifier la formule insérée dans le cadre de la mise en forme comme ceci :

 

"=(""ligneActiveMFC""<>0)*LIGNE("  & zone.Cells(1).Address(False, False) & ")=" &  ActiveCell.Row

 

La première partie consiste simplement à effectuer une comparaison Booléenne.

C’est-à-dire que nous demandons à VBA de regarder si la valeur saisie entre guillemets est différente du chiffre 0.

Bien évidemment cela sera toujours le cas, cette comparaison sera toujours égale à VRAI, ce qui fait que cette partie sera annulée lors du traitement de la formule !

Inutile dans ce cas ?

Et non, car cette astuce nous a permis de poser une étiquette d’identification sur la mise en forme conditionnelle.

Il nous suffira maintenant de rechercher le terme de l’étiquette.

Ici ce terme correspond à « ligneActiveMFC ».

Pour l’identifier, il va maintenant nous suffire de passer en revue toutes les mises en forme conditionnelles contenues dans la feuille et de ne supprimer que celles contenant ce terme !

Pour cela, nous utilisons bien entendu une boucle For :

 

    Dim i As Integer
    For i = 1 To Cells.FormatConditions.Count
        With Cells.FormatConditions(i)
            If .Formula1 Like "*ligneActiveMFC*"  Then
                .Delete
            End If
        End With
    Next

 

Donc :

  • Nous commençons par instancier une variable i qui est un nombre entier (Integer),
  • Cette variable nous permet de lancer une boucle For, avec une valeur de départ égale à 1, et pour valeur maximale le nombre de mise en conditionnelles déjà mise en place,
  • Pour simplifier la rédaction de la macro, nous utilisons un With qui permet d’appliquer directement les méthodes et propriétés sur la mise en forme conditionnelle en cours d’analyse (Cells.FormatConditions(i)),
  • Puis avec un test IF, nous regardons si la mise en forme conditionnelle courante contient l’étiquette en utilisant l’opérateur de comparaison LIKE avec les caractères joker étoiles (« * »),
  • Et enfin, lorsque le test est vérifié, nous pouvons supprimer la mise en forme conditionnelle actuelle !

p>Il ne reste plus qu’à tester la macro !

 

Pour cela, nous sélectionnons une série de chiffres, puis nous insérons une mise en forme conditionnelle (menu Accueil > Mise en forme conditionnelle > Règles de mise en surbrillance des cellules > Supérieur à…) :

Excel formation - Ajouter une mfc en vba - 01

Ce qui nous permet d’afficher en rouge toutes les cellules dont la valeur est supérieure à la moyenne des cellules sélectionnées :

Excel formation - Ajouter une mfc en vba - 02

Et maintenant, lorsque nous sélectionnons une cellule, comme par magie, la mise en forme conditionnelle que nous venons juste d’insérer reste toujours présente !

Excel formation - Ajouter une mfc en vba - 03

 

Article publié le 12 décembre 2018 et mis à jour le 6 avril 2020

 



Articles qui pourraient vous intéresser

Comment remplacer automatiquement des données (mots, lettres, nombres,…) sur Excel

MISE EN FORME CONDITIONNELLE SUR UN GRAPHIQUE EXCEL

COMMENT DUPLIQUER 500 FOIS (OU PLUS !) UNE FEUILLE DE CALCUL EXCEL EN 1 CLIC

COMMENT CONVERTIR DES COORDONNÉES GPS DEGRÉS MINUTES SECONDES (DMS) EN DEGRÉS DÉCIMAUX (DD) EXCEL

Commentaires

Tortue33 commented

Bonjour, Très bonne vidéo mais si on souhaite sélectionner toute la ligne du fiche sans s’arrêter à la fin du tableau en VBA? Merci!

Excelformation.fr commented

Bonjour et merci pour votre commentaire. Pour surligner toute la ligne, vous pouvez ajouter « .EntireRow » sur la plage sélectionnée. Ainsi, remplacez la ligne « With ActiveCell.CurrentRegion.FormatConditions.Add(...) » par « With ActiveCell.CurrentRegion.EntireRow.FormatConditions.Add(...) », À bientôt

albatros68 commented

Bonjour. Très intéressant mais comment écrire la même VBA pas en worksheet mais dans le fichier "personnal.xlsb" afin que je puisse l'utiliser dans n'importe quel fichier excel. Par ailleurs j'aimerais également contrôler, toujours dans la même macro, la largeur de la surbrillance de la ligne, par exemple jusqu'à la colonne Z . On va dire la que la plage serait A1:Z100. Merci pour votre réponse.

ditch commented

ça marche super bien mais cela efface toute les autres mise en forme conditionnels

Flow commented

Bonjour, Est-il possible pour la méthode 3, de proposer tout le code de la macro afin de pouvoir le copier-coller ? Merci

mamy titine commented

sur un tableau avec des cellules vides la ligne n est pas surlignée seule la cellule … est il possible de surligner la ligne meme sur la cellule selectionnée est vide ou entourée de cellule vide merci cela m aide bcp comme cela c est top

UNA commented

Bonjour, je n'ai pas reussi à reproduire la méthode 3, la sélection se retrouve décalé dès que je sélectionne une ligne à partir de la N°2. Est-il posisble d'avoir la macro en entière svp ? merci

Excelformation.fr commented

Bonjour, je vous invite à télécharger le fichier proposé pour retrouver la macro dans son intégralité. Merci et à bientôt !

UNA commented

Bonjour, j'ai dl le fichier, celui ci ne fonctionne pas sur aucune des pages. Pouvez-vous regarder svp ? (bug sur feuille 2, mais meme si je supprime les macros sur la feuille 2, les macros ne fonctionne pas sur la 1 et la 3) Merci encore

Madsim commented

Bonjour, le surlignage marche de mes lignes de AQ à 4Q mais à partir de la cellule 5Q cela ne fonctionne plus. Si je sélectionne PQ ça marche. 5Q seul la cellule est surligné mais pas la ligne. Pour info, c'est un tableau avec des filtres. Merci beaucoup

Poster un commentaire

Pseudo
Commentaire

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.