Macro vba pour surligner une ligne
Fermé
johannenzo
Messages postés
34
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
24 juillet 2011
-
31 janv. 2011 à 16:31
johannenzo Messages postés 34 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 24 juillet 2011 - 2 févr. 2011 à 16:48
johannenzo Messages postés 34 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 24 juillet 2011 - 2 févr. 2011 à 16:48
A voir également:
- Macro vba pour surligner une ligne
- Aller à la ligne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Site de vente en ligne particulier - Guide
- Macro word - Guide
- Partager photos en ligne - Guide
1 réponse
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
31 janv. 2011 à 17:36
31 janv. 2011 à 17:36
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+
31 janv. 2011 à 18:13
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
31 janv. 2011 à 18:30
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.
1 févr. 2011 à 08:41
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
Modifié par pilas31 le 1/02/2011 à 13:35
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+
1 févr. 2011 à 19:19
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