interdire la saisie sur couleur

  • Initiateur de la discussion Initiateur de la discussion didier
  • Date de début Date de début

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 !

D

didier

Guest
bonjour,

Je cherche sur une feuille a interdir la saisie, sur des cellules si celles ci ont certaine couleur bien précise (rouge, violet et orange).

Ces cellules ont une mise en forme conditionnel qui détermine leur couleur de fond

Merci pour votre aide précieuse.
Ðidier
 
bonjour

Une proposition en vba à mettre dans l'objet feuil (alt + F11) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 3 Then
MsgBox ("non")
Target.Offset(0, 1).Select

End If

End Sub

Si la couleur de la cellule est rouge, alors msgbox et selection de la cellule d'a coté.

Salut
Hervé
 
j'ai essayé ta solution,dans un classeur vide et dans le mien
Elle fonctionne trés bien si la cellule n'est pas lier a une mise en forme conditionnel.
Or dans se cas la il y a une mise en forme conditionnel. Plus un recopiage dans la cellule.


On pourrait peut être tourner le probléme autrement
en spécifiant que l'on ne peut écrire que sur les cellules blanches ou jaune situé dans un cadre de A1 a S41.
Est ce possible ?

merci
Ðidier
 
Bonjour Didier, Bonjour Hervé,

J'ai essayé aussi avec le .Interior.ColorIndex mais apparemment quand la couleur est donnée par la MFC, on ne peut pas la récupérer en VBA. Ce qui est dommage quand même.
Interior.ColorIndex donne la couleur de la mise en forme normale.
Pour l'instant je ne vois pas de solution. Je vais réfléchir encore.

Bon courage.

José
 
re

Bizarre, que l'on puissent pas récupérer en vba la couleur d'une mfc.

Didier, tu ne peut pas tourner le problème à l'envers parce que vba va interpréter tes cellules rouges comme sans couleur.

Par contre on peut, peut-etre, utiliser la même condition du mfc pour interdire la saisie sur les cellules rouges.

exemple en pièce jointe

salut
Hervé
 

Pièces jointes

bonjour Hervé

Ton bout de vba marche trés bien.

Mais la on s'éloigne de mon prblme.

Ce qui est primordiale c'est que la cellule en rouge reste vierge de toute valeur. il en va de même pour les oranges et les violettes.
Ce que je veux c'est interdir toute frappe intempestive dans ces cellules, de la part des utilisateurs.

merci tout de même, c'est bien sympa a toi
Ðidier
 
re

Désolé de n'avoir pas pu t'aider plus :

As-tu penser à la protection de la feuille sauf des cellules a remplir

si tes cellules a portéger sont toujours les mêmes essaye ceci :

exemple pour interdire la selection des cellules A1 B2 C3 et D4

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("a1,b2,c3,d4")) Is Nothing Then
Target.Offset(0, 1).Select
End If
End Sub

et cette derniere interdit la selection de cellule dans la colonne B :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 Then
Target.Offset(0, 1).Select
End If
End Sub

En espérant que tous ceci de rendra service

Salut
Hervé
 
merci quand même hervé
mais les cellules sont aléatoires et change de couleur en fonction de plusieurs critéres.

Par contre j'ai bien aimer ton petit code (le1er), j'entrevoie peut-être une solution

a bientôt
Ðidier
 
re final

Je reviens à la charge parce que je pense que ceci peut être utile à quelqu'un.

Cette macro interdit la selection d'une cellule si celle-ci contient une MEFC avec comme critère la présence de la couleur rouge comme format de la MEFC.

Dans le cas d'une MEFC a plusieurs conditions il suffit qu'une des conditions prenne le format rouge pour que la macro s'exécute.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each mefc In ActiveCell.FormatConditions
If mefc.Interior.ColorIndex = 3 Then
Target.Offset(0, 1).Select
End If
Next mefc

End Sub

salut
Hervé
 
Bonjour Didier, Bonjour Hervé,

J'ai regardé partout sur l'aide et sur Excelabo.net. Pas vu de moyen de récupérer le ColorIndex donné par la MFC.
Je ne vois qu'un moyen c'est de ne pas utiliser la MFC mais de mettre en forme les cellules par le code VBA en fonction des conditions requises. Ce qui permet au passage d'en interdire la saisie lorsque cela est nécessaire.
Il y a sur le forum, plusieurs fils qui parlent de MFC par code VBA pour transgresser la limite des trois conditions, je pense que tu peux t'en inspirer Didier.

J'espère que cela pourra résoudre ton problème.

Bonne journée.

José
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
566
Retour