XL 2013 erreur sur la formule ! changement de couleur de cellule [Résolu]

bellenm

XLDnaute Impliqué
Bonjour à tous,

petit problème de visual
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static selection_precedente As String

    If selection_precedente <> "" Then
        'Suppression de la couleur de fond de la sélection précédente :
        Range(selection_precedente).Interior.ColorIndex = xlColorIndexNone
    End If

    'Coloration de la sélection actuelle :
    Target.Interior.Color = RGB(0, 255, 255) '(181, 244, 0)

    'Enregistrement de l'adresse de la sélection actuelle :
    selection_precedente = Target.Address
End Sub

ok la cellule change de couleur lors de son déplacement mais surtout efface la mise en forme!

Comment écrire pour qu'après le déplacement l'ancienne cellule revient à son format initial sauf bien sur les rajouts données .

Ce qui me faudrait comme code, c'est que la cellule change de couleur lors de l'arrivé sur celle-ci mais qu'après son départ reprenne la couleur qu'elle avait avant!


Je ne sais pas si j'ai été assez clair?

D'avance merci

Marc
 
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
Re : erreur sur la formule ! changement de couleur de cellule

Bonjour.

Essayez ça :
VB:
Option Explicit
Dim Cible As Range, CoulFond As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Cible Is Nothing Then Cible.Interior.Color = CoulFond
If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
   Set Cible = Target
   CoulFond = Target.Interior.Color
   Target.Interior.Color = RGB(0, 255, 255)
Else: Set Cible = Nothing: End If
End  Sub
Mais ce n'est peut être pas parfait car un changement de couleur expressément demandé sur la cellule sélectionnée ne serait pas conservé. On pourrait y remédier en testant que ce soit bien toujours cette couleur, mais ça ne résoudrait pas le problème pour cette couleur là justement.
 

bellenm

XLDnaute Impliqué
Re : erreur sur la formule ! changement de couleur de cellule

Bonjour Danreb,

c'est bien ce que je cherche mais pourquoi ca ne vas sur les cellules blanches?

Dans la feuille par exemple "c9, c10, c11

Ce sont des cellules fusionnée?

Marc
 

Pièces jointes

  • test couleur.xlsm
    61.2 KB · Affichages: 22
  • test couleur.xlsm
    61.2 KB · Affichages: 30

Dranreb

XLDnaute Barbatruc
Re : erreur sur la formule ! changement de couleur de cellule

Pour pouvoir le faire fonctionner aussi sur des cellules fusionnées :
VB:
Option Explicit
Dim Cible As Range, CoulFond As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Cible Is Nothing Then Cible.Interior.Color = CoulFond
Set Cible = Target(1, 1).MergeArea
If Target.Rows.Count = Cible.Rows.Count And Target.Columns.Count = Cible.Columns.Count Then
   CoulFond = Target.Interior.Color
   Target.Interior.Color = RGB(0, 255, 255)
Else: Set Cible = Nothing: End If
End Sub
 

bellenm

XLDnaute Impliqué
Re : erreur sur la formule ! changement de couleur de cellule

re:

j'ai modifier les cellules sans les fusionner.

Ca fonctionne super bien sauf sur cette feuilles qui m'indique une erreur "Target.Interior.Color= RGB(0, 255,0)"

Marc
 

Pièces jointes

  • test couleur.xlsm
    70 KB · Affichages: 22
  • test couleur.xlsm
    70 KB · Affichages: 23

bellenm

XLDnaute Impliqué
Re : erreur sur la formule ! changement de couleur de cellule

Ha oui ok donc aussi simplement déverrouiller la feuille.

Je croyais qu'il y avait possibilité de le faire automatiquement lorsque l'on accédait à la feuille!

Merci pour ton aide Dranreb

Marc
 

Dranreb

XLDnaute Barbatruc
Re : erreur sur la formule ! changement de couleur de cellule

C'est aussi possible sûrement dans une Worksheet_Activate.
Ou bien au contraire y remettre cette protection mais en précisant le paramètre UserInterfaceOnly:=True pour que les macros n'y soient pas soumises.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote