RESOLU Cellule active colorée

olivepao

XLDnaute Occasionnel
Bonjour à tous
J'ai créé une feuille (modèle xltm) formulaire ou je mets en temporairement en évidence la cellule active (ici en rouge).
Les cellules changent de couleur quand je clique dessus ou passe d'une cellule à l'autre avec TAB.
Le problème survient lorsque je veux enregistrer ma feuille, la cellule active ne reprend pas sa couleur d'origine et l'enregistrement plante car la variable est considérée comme vide.

Les variables sont déclarées Public dans Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) et leurs valeurs ne sont pas restituées dans Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean).


Les variables sont testées par msgbox.


J'ai cherché, en vain, comment conserver la valeur des varaibles. Je vous remercie de votre préciause aide.




' Variables
Public AncienneCouleurCellule As Integer
Public AncienneAdresseCellule As Range



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'==========

' La cellule active est mise en évidence (ici, avec la couleur rouge)

' Ne fonctionne que si les cellules sont colorisées avec les 56 couleurs de base d'Excel.

' Procédure (1) si la feuille est protégée (sinon plantage
Application.ScreenUpdating = False
ActiveSheet.Unprotect


' Procédure principale
If Not AncienneAdresseCellule Is Nothing Then
AncienneAdresseCellule.Interior.ColorIndex = AncienneCouleurCellule
End If


AncienneCouleurCellule = Target.Interior.ColorIndex

Target.Interior.ColorIndex = 3

Set AncienneAdresseCellule = Target


' Test
MsgBox "La couleur d'origine est la couleur N° " & AncienneCouleurCellule



' Procédure (2) si la feuille est protégée (sinon plantage) - 2
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Pushed = True
Application.ScreenUpdating = True

'==========

End Sub

----------------------

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


If ActiveCell.Interior.ColorIndex = 3 Then


' Test
MsgBox "La couleur d'origine est la couleur N° " & AncienneCouleurCellule


ActiveCell.Interior.ColorIndex = AncienneCouleurCellule


End If
End Sub


Je ne sais pas si le ma feuille sera jointe au message car étant en réseau les pièces jointes ne sont pas tjs prises en compte. Si c'est le cas je la ferai parvenir plus tard.
 

Pièces jointes

  • Couleurs_Evidence.xlsm
    18.1 KB · Affichages: 64
Dernière édition:

olivepao

XLDnaute Occasionnel
Re : Conservation de la valeur d'une variable.

Hello laurent950 hello les autres

Je viens de transposer ton code dans ma vraie feuille de travail et hô surprise, patatra tout plante.

Le plantage se fait sur AncienneCouleurCellule = Target.Interior.ColorIndex dans Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range).

Erreur : Erreur d'exécution '94' Utilisation incorrecte de Null

Je pensais que celà pouvait venir du fait que des cellules l'une à côté de l'autre étaient de couleur idendique, et bein c'est pas ça !

Je pensait éventuellement au fait qu'il y a des cellules protégées et des cellules non protégées, et bein c'est tjs pas ça !

Je sèche mais peut-être un début de piste . . .

Ma feuille ne garde pas la propriété "Feuille protégée" quand je la sauve, En effet quand je clique sur l'icône enregistré, la protection d la feuille s'enlève automatiquement.

Help !
 

Pièces jointes

  • Notifications_Ressources.xlsm
    34.1 KB · Affichages: 26

olivepao

XLDnaute Occasionnel
Re : Conservation de la valeur d'une variable.

Re à tous

J'ai retourné le problème dans tous les sens et me suis rendu compte que le problème venait des cellules.

J'ai donc redéfini toutes mes cellules (couleur, protégée - non protégée, texte, numérique, etc) et une fois fait, tout fonctionne.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU