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.
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)
With [D8:D27] 'plage à adapter
.Interior.Color = 12874308 'couleur de fond bleue
.Font.ColorIndex = 2 'couleur police blanche
If Intersect(ActiveCell, .Cells) Is Nothing Then Exit Sub
End With
With ActiveCell
.Interior.Color = 49407 'couleur de fond orange
.Font.ColorIndex = xlAutomatic 'couleur police noire
End With
End Sub
t'as fais si peur à ta cellule qu'elle a attrapé la jaunisse ! 🤢
le smiley vert, c'est pour dire que D8 est malade, mais D8 est bien jaune,
pas verte ! ça va, tu as tout suivi ? 🤪 (sinon, relis tout bien lentement)
fais Alt F11 pour voir le code VBA ; puis quand tu auras terminé
d'admirer ma belle macro, fais Alt F11 pour aller sur Excel.
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub
If .Address = "$D$8" Then .Interior.Color = 49407
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [D8]
.Interior.Color = IIf(Target.Address = .Address, 49407, 12874308) 'couleur de fond
.Font.ColorIndex = IIf(Target.Address = .Address, xlAutomatic, 2) 'couleur police
End With
End Sub
Puisque Michest n'a plus besoin désormais besoin de suivre le conseil de job75. (cf message#2)
J'y vais aussi de ma macro matinale
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Count > 1 Then Exit Sub
T.Interior.Color = IIf(T.Address = "$D$8", Asc("Staple") + 1600, xlNone)
End Sub
Ou plus convivial (et/ou ergonomique*) avec une MFC matinée d'un peu de VBA.
La formule pour la MFC (cf copie écran ci-dessous)
Et dans le code de la feuille concernée par la MFC
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
*: on peut modifier la plage, le format et la couleur sur le Ruban: Accueil=>Mise en forme conditionnelle
EDITION
Houps, Bonjour job75, je n'ai pas vu ton message.
J'étais en train de mettre en forme le mien pendant que tu postais le tien.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [D8:D27] 'plage à adapter
.Interior.Color = 12874308 'couleur de fond bleue
.Font.ColorIndex = 2 'couleur police blanche
If Intersect(ActiveCell, .Cells) Is Nothing Then Exit Sub
End With
With ActiveCell
.Interior.Color = 49407 'couleur de fond orange
.Font.ColorIndex = xlAutomatic 'couleur police noire
End With
End Sub
t'as fais si peur à ta cellule qu'elle a attrapé la jaunisse ! 🤢
le smiley vert, c'est pour dire que D8 est malade, mais D8 est bien jaune,
pas verte ! ça va, tu as tout suivi ? 🤪 (sinon, relis tout bien lentement)
fais Alt F11 pour voir le code VBA ; puis quand tu auras terminé
d'admirer ma belle macro, fais Alt F11 pour aller sur Excel.
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub
If .Address = "$D$8" Then .Interior.Color = 49407
End With
End Sub
t'as fais si peur à ta cellule qu'elle a attrapé la jaunisse ! 🤢
le smiley vert, c'est pour dire que D8 est malade, mais D8 est bien jaune,
pas verte ! ça va, tu as tout suivi ? 🤪 (sinon, relis tout bien lentement)
fais Alt F11 pour voir le code VBA ; puis quand tu auras terminé
d'admirer ma belle macro, fais Alt F11 pour aller sur Excel.
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub
If .Address = "$D$8" Then .Interior.Color = 49407
End With
End Sub
Désolé pour le retour un peu tardif, j'ai vu la cellule D8 c'est parfait SOAN 👍
Par contre quand je clique sur une autre cellule D8 doit repasser à son ancienne couleur et la nouvelle sélectionnée passe en couleur.
Exemple : j'ai 5 cellules D8;D9;D10;D11;D12 en fonction du clique sur la cellule sélectionner elle passe en couleur. je clique sur D9 (couleur jaune) D8;D10;D11;D12 états initial puis je clique sur D12 (couleur jaune) les autres cellules passent à l'état initial y compris D9
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [D8]
.Interior.Color = IIf(Target.Address = .Address, 49407, 12874308) 'couleur de fond
.Font.ColorIndex = IIf(Target.Address = .Address, xlAutomatic, 2) 'couleur police
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With [D8:D27] 'plage à adapter
.Interior.Color = 12874308 'couleur de fond bleue
.Font.ColorIndex = 2 'couleur police blanche
If Intersect(ActiveCell, .Cells) Is Nothing Then Exit Sub
End With
With ActiveCell
.Interior.Color = 49407 'couleur de fond orange
.Font.ColorIndex = xlAutomatic 'couleur police noire
End With
End Sub
tu as écrit : « Exemple : j'ai 5 cellules D8;D9;D10;D11;D12... »
nouveau fichier ci-dessous, avec cette sub :
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub
If Intersect(Target, [D8:D12]) Is Nothing Then Exit Sub
Application.ScreenUpdating = 0
With [D8:D12]
.Interior.Color = 12874308: .Font.ColorIndex = 2
End With
.Interior.Color = 49407: .Font.ColorIndex = 0
End With
End Sub
=>Michest
Pas de retour, avis et/ou commentaires sur le message#5 ? (notamment la proposition qui mixe VBA et Mise en forme conditionnelle)
J'avais pourtant pris le temps de faire une belle copie d'écran. 🙄
=>Michest
Pas de retour, avis et/ou commentaires sur le message#5 ? (notamment la proposition qui mixe VBA et Mise en forme conditionnelle)
J'avais pourtant pris le temps de faire une belle copie d'écran. 🙄
Désolé aujourd'hui journée un peu compliquée je te fais un retour demain le seul essai que j'ai pu faire à partir d'un fichier exemple correspond bien à mon besoin par contre quand j'essai de l'appliquer dans mon fichier source cela ne fonctionne pas, je vais regarder ton retour sur les MFC si cela peut être concluant.
En tout les cas merci pour ton retour👍
Par contre la formule dans la MFC est tronquée dans ton fichier image
=>Michest
Merci pour ton feedback
Alors pour faire simple
Lance cette macro dans un classeur vierge
Code:
Sub Créer_MFC()
Dim Rng As Range
Set Rng = [A1:H20] 'adpater ici la plage concernée par la MFC
Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=ADRESSE(LIGNE();COLONNE())=CELLULE(""adresse"")"
With Rng.FormatConditions(1).Borders
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
Rng.FormatConditions(1).Interior.Color = 65535
End Sub
Ensuite dans le code de la feuille (clic-droit Visualiser le code)
Mettre la procédure évènementielle ci-dessous
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
=>Michest
Merci pour ton feedback
Alors pour faire simple
Lance cette macro dans un classeur vierge
Code:
Sub Créer_MFC()
Dim Rng As Range
Set Rng = [A1:H20] 'adpater ici la plage concernée par la MFC
Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=ADRESSE(LIGNE();COLONNE())=CELLULE(""adresse"")"
With Rng.FormatConditions(1).Borders
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
Rng.FormatConditions(1).Interior.Color = 65535
End Sub
Ensuite dans le code de la feuille (clic-droit Visualiser le code)
Mettre la procédure évènementielle ci-dessous
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
=>Michest
Merci pour ton feedback
Alors pour faire simple
Lance cette macro dans un classeur vierge
Code:
Sub Créer_MFC()
Dim Rng As Range
Set Rng = [A1:H20] 'adpater ici la plage concernée par la MFC
Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=ADRESSE(LIGNE();COLONNE())=CELLULE(""adresse"")"
With Rng.FormatConditions(1).Borders
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThin
End With
Rng.FormatConditions(1).Interior.Color = 65535
End Sub
Ensuite dans le code de la feuille (clic-droit Visualiser le code)
Mettre la procédure évènementielle ci-dessous
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
bonjour staple1600,
J'ai fait l'essai avec la MFC sur un classeur vierge cela fonctionne NICKEL et je garde précieusement ta macro.
Par contre quand j'essai de l'adapter dans mon projet sur une de mes feuilles cela ne m'affiche pas de couleur de sélection je pense que ma feuille se trouve avec des cellules fusionnées et perturbe le fonctionnement.
Je vais remettre en en forme cette feuille et l'adapté à nouveau.
Merci à toi
Michest
- 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