Bonsoir membres du forum,
La ligne active et la colonne active sont surlignées sur réception du curseur(la sourie).
Quelle est la méthode à appliquer ?
Cordialement.
Bonsoir membres du forum,
La ligne active et la colonne active sont surlignées sur réception du curseur(la sourie).
Quelle est la méthode à appliquer ?
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour,
code à copier dans le module de la feuille
Pour accéder au module VBA, faire ALT + F11 , sélectionnez le nom de la feuille dans la partie gauche et copiez le code précédent dans la partie droite, comme ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static DerLig As Long 'déclare la variable DerLig en static Static DerCol As Long 'déclare la variable DerCol en static If Target.Count > 1 Then Exit Sub 'Si plus d'une cellule sélectionnées, alors on sort If DerLig <> 0 And DerCol <> 0 Then Rows(DerLig).Interior.ColorIndex = xlNone 'remettre la précédente ligne sélectionnée en normal Columns(DerCol).Interior.ColorIndex = xlNone 'remettre la précédente colonne sélectionnée en normal End If Target.EntireRow.Interior.ColorIndex = 6 'Surligne la ligne en jaune Target.EntireColumn.Interior.ColorIndex = 6 'Surligne la colonne en jaune DerLig = Target.Row 'méorise le numéro de la ligne DerCol = Target.Column 'méorise le numéro de la colonne End Sub
Pièce jointe 545150
Cdlt
Bonjour le Fil
Bonjour Arturo,
En utilisant un Range statique, ça fonctionnera aussi lors d'une sélection multiple (colonne, ligne, zone).
Bien évidemment, il manquera encore le cas (peu utilisé) du déplacement de la cellule active dans une zone sélectionnée (qui ne provoque pas SelectionChange), mais ça ne peut pas être fait à la souris (demande initiale).
Code VBA-E : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static cel As Range If Not cel Is Nothing Then cel.EntireRow.Interior.ColorIndex = xlNone 'remettre la précédente ligne sélectionnée en normal cel.EntireColumn.Interior.ColorIndex = xlNone 'remettre la précédente ligne sélectionnée en normal End If Set cel = ActiveCell cel.EntireRow.Interior.ColorIndex = 6 cel.EntireColumn.Interior.ColorIndex = 6 End Sub
Cordialement,
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur
Bonjour,
Il y a plusieurs méthodes.
Certaines suppriment les couleurs de fond.
En Pj, quelques méthodes qui ne modifient pas la couleur de fond.
Boisgontier
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour boisgontierjacques,
la méthode que j'ai choisie est: "CurseurLigneColMFC"
Voici la capture d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set champ = Range("A1:M20") If Me.CheckBox1 Then If Not Intersect(champ, Target) Is Nothing Then champ.FormatConditions.Delete If Target.Count = 1 Then Union(Intersect(Target.EntireRow, champ), _ Intersect(Target.EntireColumn, champ)).FormatConditions.Add Type:=xlExpression, Formula1:="VRAI" Union(Intersect(Target.EntireRow, champ), _ Intersect(Target.EntireColumn, champ)).FormatConditions(1).Interior.ColorIndex = 36 'Target.FormatConditions(1).Font.Bold = True End If End If Else champ.FormatConditions.Delete End If End Sub
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour,
Tu n'as pas ajouté le Checkbox sur la feuille !
Il sert à activer / désactiver le surlignage.
Si tu n'en a pas besoin, supprimes la ligne en Erreur (bleue) et le End If correspondant
Cordialement,
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur
Bonsoir Patrice740,
j'ai effectué ce que vous m'avez suggéré:
Peut on gérer les erreurs avec ce code car lorsque la feuille est protégée, un Click sur elle renvoie des messages d’erreurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set champ = Range("A1:N90") 'If Me.CheckBox1 Then If Not Intersect(champ, Target) Is Nothing Then champ.FormatConditions.Delete If Target.Count = 1 Then Union(Intersect(Target.EntireRow, champ), _ Intersect(Target.EntireColumn, champ)).FormatConditions.Add Type:=xlExpression, Formula1:="VRAI" Union(Intersect(Target.EntireRow, champ), _ Intersect(Target.EntireColumn, champ)).FormatConditions(1).Interior.ColorIndex = 36 'Target.FormatConditions(1).Font.Bold = True 'End If End If
Code : Sélectionner tout - Visualiser dans une fenêtre à part currentdb.execute ..., dbfailonerror
Maintenant comment fait on pour changer la couleur des lignes active et colonne active ?
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour,
Beaucoup de codes de JB modifient les cellules et donc posent problème avec des cellules protégées : il faut déprotéger avant la modification et re-protéger après.
Et pour changer la couleur, il suffit de changer la valeur du ColorIndex, voire le remplacer par un Color.
Je te suggère d'utiliser la méthode CurseurTarget qui ne fait que sélectionner l'union de la ligne et de la colonne sans modifier quoi que ce soit.
Cordialement,
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour,
Il doit y avoir des problèmes de protection.
Boisgontier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set champ = Range("A1:M20") If Me.CheckBox1 Then If Not Intersect(champ, Target) Is Nothing Then champ.FormatConditions.Delete If Target.Count = 1 Then Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions.Add Type:=xlExpression, Formula1:="VRAI" Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions(1).Interior.ColorIndex = 36 'Target.FormatConditions(1).Font.Bold = True End If End If Else champ.FormatConditions.Delete End If End Sub
Bonsoir boisgontierjacques,
Merci encore une fois je viens d'apprendre un grand plus à travers vos interventions.
Surtout la ligne de code suivante:
infiniment et à bientôt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Target.FormatConditions(1).Font.Bold = True
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager