Macro vba pour surligner une ligne
johannenzo
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
johannenzo Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
johannenzo Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un tableau excel 2003 avec beaucoup de lignes et de colonnes ce qui le rend pas très lisible ...
Pourriez-vous m'indiquer un code vba pour que s'affiche en surbrillance avec une couleur du type gris clair toutes les cellules de la ligne correspondante à la cellule active sélectionner ?
Et faire en sorte par la meme occasion que pour la cellule active le texte s'affiche en gras ?
Est ce possible ?
Cordialement
J.
J'ai un tableau excel 2003 avec beaucoup de lignes et de colonnes ce qui le rend pas très lisible ...
Pourriez-vous m'indiquer un code vba pour que s'affiche en surbrillance avec une couleur du type gris clair toutes les cellules de la ligne correspondante à la cellule active sélectionner ?
Et faire en sorte par la meme occasion que pour la cellule active le texte s'affiche en gras ?
Est ce possible ?
Cordialement
J.
A voir également:
- Macro vba pour surligner une ligne
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
1 réponse
Bonjour,
voici une proposition :
Le code VBA associé à la feuille :
Le code VBA associé à "ThisWorkbook" pour que la selection s'efface à la fermeture du fichier
et dans un module déclarer les variables globales suivantes :
Voila, c'est un peu complexe mais cela doit fonctionner...
Me dire si c'est OK
A+
voici une proposition :
Le code VBA associé à la feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Effacer la sélection précédente If Lig_Cour <> 0 And Col_Cour <> 0 Then Rows(Lig_Cour).Interior.ColorIndex = xlNone Cells(Lig_Cour, Col_Cour).Font.Bold = False End If 'Mettre en évidence la sélection actuelle Lig_Cour = Target.Row Col_Cour = Target.Column Rows(Lig_Cour).Interior.ColorIndex = 15 Cells(Lig_Cour, Col_Cour).Font.Bold = True End Sub
Le code VBA associé à "ThisWorkbook" pour que la selection s'efface à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean) If Lig_Cour <> 0 And Col_Cour <> 0 Then Rows(Lig_Cour).Interior.ColorIndex = xlNone Cells(Lig_Cour, Col_Cour).Font.Bold = False End If End Sub
et dans un module déclarer les variables globales suivantes :
Public Lig_Cour As Integer, Col_Cour As Integer
Voila, c'est un peu complexe mais cela doit fonctionner...
Me dire si c'est OK
A+
En fait j'aimerais que lorsque je suis dans une cellule de mon tableau, la ligne s'affiche comme si on la sélectionner en cliquant sur son numéro tout a gauche.
Lorsqu'on fait cela la ligne est encadré avec une bordure un plus épaisse et le fond devient un peu plus foncé
Est ce que ce ne serait pas plus simple de pouvoir récupérer "la fonction" identique à lorsqu'on clique sur le chiffre ???
Cordialement
J
Ce n'est pas compatible avec la sélection d'une cellule.
Ce que je propose passe le fond de la ligne en gris et la cellule sélectionnée en gras mais ne change pas la sélection.
Donc on peut par exemple modifier la cellule.
en fait ce qui me gene dans le faite de changer le fond de la couleur des cellules de la ligne séléctionné c'est que dans ce tableau j'ai des cellules avec menu deroulant et mise en forme conditionnelle utilisant des couleurs de fond !!! Donc si je me modifie la couleur de fond de toute la ligne je vais modifié les couleurs utilisées par la mise en forme conditionnelle.
Et je risque de perdre "temporairement" ces marqueurs visuels ...
Cordialement
Je viens de faire le test avec des Mises en Forme Conditionnelle et des listes déroulantes et cela se comporte bien.
Les couleurs de fond définies par les MFC sont de toute façon prioritaires par rapport au fond qui est fixé par la macro.
Je pense que ma solution est à essayer. Au besoin il faut essayer avec d'autres couleurs de fond. Dans mon exemple la valeur 15 correspond au gris clair.
A+
puisque les mises en forme conditionnelle sont prioritaire cela devient intéressant de rester sur l'idée de départ, je vais donc essayer ce que vous m'avait conseillé.
Par contre étant débutant en programmation vba pourriez vous me préciser ou dois je entrer les éléments dont vous parlez plus haut :
A savoir
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Effacer la sélection précédente
If Lig_Cour <> 0 And Col_Cour <> 0 Then
Rows(Lig_Cour).Interior.ColorIndex = xlNone
Cells(Lig_Cour, Col_Cour).Font.Bold = False
End If
'Mettre en évidence la sélection actuelle
Lig_Cour = Target.Row
Col_Cour = Target.Column
Rows(Lig_Cour).Interior.ColorIndex = 15
Cells(Lig_Cour, Col_Cour).Font.Bold = True
End Sub
Le code VBA associé à "ThisWorkbook" pour que la selection s'efface à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Lig_Cour <> 0 And Col_Cour <> 0 Then
Rows(Lig_Cour).Interior.ColorIndex = xlNone
Cells(Lig_Cour, Col_Cour).Font.Bold = False
End If
End Sub
et dans un module déclarer les variables globales suivantes :
Public Lig_Cour As Integer, Col_Cour As Integer
Merci d'avance
Cordialement