Cellule coloriée si reactivé

Résolu/Fermé
eric2027 - 30 sept. 2010 à 15:35
 eric2027 - 22 oct. 2010 à 10:46
Bonjour, je voudrais que ma cellule se colore en rouge par exemple lorsque je change 2 fois ce qui il y a dedans
par avance merci
Éric



99 réponses

Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 253
Modifié par Nyctaclope le 30/09/2010 à 22:45
Bonsoir !

La question de la teinte, rouge ou autre, est facile à résoudre par utilisation d'un format conditionnel de la cellule ( dépendant du résultat d'un test ).

Par contre le problème du test lui même est tout autre :
Une cellule ne peut tester son propre contenu, car elle contient alors la formule de test, et ne peut donc avoir d'autre contenu propre à soumettre au test.

Tu ne peux résoudre le problème qu'en réalisant sous Excel ce que tu ferais toi même "à la main"
Pour savoir si une cellule est modifiée, tu dois comparer son contenu au précédent contenu, que tu dois donc avoir sauvegardé. Pour savoir si elle subit une deuxième modification, tu dois savoir qu'il y en a déjà eu une autre, donc avoir modifié un compteur, ou avoir fait une deuxième sauvegarde différente de la première.

Comme la modification du contenu d'une cellule ( modification du compteur, ou sauvegarde du contenu dans une autre cellule ) ne peut PAS être fait par une formule, seule une "macro" pouvant le faire à la place de l'utilisateur ...

=> il te faut donc deux cellules de sauvegarde, ou une sauvegarde et un compteur, plus une cellule effectuant le test, ET une macro convenable effectuant le comptage et la/les sauvegardes en fonction de ce qu'elle "voit".
Le problème de la macro est que tu dois la lancer à la main ( ou par clic sur un bouton convenablement configuré ), ou bien elle ne peut s'effectuer automatiquement que lors d'événements prédéfinis ( ouverture ou fermeture du document, par exemple ).
Selon le choix fait, tu pourrais ne savoir tester qu'une seule modif faite pendant que le document est ouvert .

En final, la cellule de test examine les résultats et donne l'information nécessaire au format conditionnel.

Donc ton problème parait simple, mais ne l'est pas tant que cela ...
Mais c'est sûrement faisable avec un peu de patience ...
Et d'autres solutions sont sans doute possibles, sans pouvoir aller au delà des limites d'une simple formule ..

A+
Nyctaclope
1
bonjour,
merci de t'être attardé et m'avoir répondu aussi vite mais en macro je suis archi nul, je n'y comprends rien et pourtant j'essaie, pourrais tu m'orienter et m'aider à en créer une, si c le cas, te faut il une base ?
par avance merci
Éric
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 253
1 oct. 2010 à 18:27
Re

Je ne pourrai pas t'aider beaucoup, car c'est un travail assez important, et je n'aurai pas beaucoup de temps.
En plus, ma version Excel est ancienne, et les infos que je te donnerai risquent d'être obsolètes. Et maintenant les macros se rédigent en Visual Basic, que j'ai un peu oublié ..

Je te prépare quand même l'algorithme ( structure logique ) des macros nécessaires , et je te le poste sans doute demain ..

Et je demande à Raymond Pentier ( il adore intervenir pour Excel ) s'il peut te donner un coup de main ...

A+
Nyctaclope
0
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236
2 oct. 2010 à 02:54
Oui, il adore !
Mais il prend chaque fois la précaution d'avertir que pour les macros, il est d'une ignorance crasse ... Il est vraiment désolé !
0
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236
2 oct. 2010 à 03:10
On va donc appeler au secours les vrais amateurs de VBA, qui sont de plus en plus nombreux :
eriiic, cousinhub29, michel_m, gbinforme, Mike-31, le Pingou
et quelques autres ...
que je salue tous !
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 253
2 oct. 2010 à 14:53
Merci à toi !..
Cela semble bien parti ...
A+
Nyctaclope
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
2 oct. 2010 à 10:45
Bonjour tout le monde,

Il faudrait préciser combien de cellules sont concernées.
Une ? Une colonne ? Sur plusieurs feuilles ?
Et à l'ouverture du fichier faut-il tenir compte d'un changement qui aurait eu lieu à une précédente session ?

Eventuellement mettre le fichier exemple sur cijoint.fr et coller ici le lien fourni.

eric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
2 oct. 2010 à 14:15
J'ai vu de la lumière, j'ai poussé la porte.

Bonjour tout le monde,

En supposant que tu veuilles surveiller la colonne B et pour faire simple je te conseille d'utiliser une colonne adjacente exemple la C qui pourra être masquée

Clic droit sur l'onglet de la feuille concernée/Visualiser le code et coller ce code, qui dès qu'une valeur sera changée deux fois et plus en B la cellule B passera en rouge.
Mais il faudrait peut être prévoir un resset (remise à zéro)
Dans le code j'ai intégré une gestion d'erreur

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect([B:B], Target) Is Nothing Then
Target.Offset(0, 1) = Target.Offset(0, 1) + 1
If Target.Offset(0, 1) >= 2 Then
Target.Interior.ColorIndex = 3
End If
End If
End Sub
0
Salut Mike
j'ai essayé, cela fonctionne, c cool, mais il faudrait que ce soit lors de la correction c a d je mets "15 dans la cellule b9", cela reste blanc mais lorsque je fais une correction dans "b9", là, cela apparait en rouge ,
est il possible lorsque j'inscris des données en colonne f, g, h que cela reste bloqué, comme personne ne pourrait y toucher
merci encore, vous me sortez d'une galère, un truc de ouf.

De plus, j'ai essayé de faire fonctionner ta macro dans les colonnes D, F, H mais ça ne fonctionne, pourrais m'indiquer le pourquoi ?

par avance merci de ton aide
Éric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
4 oct. 2010 à 21:44
Re,

Pour bloquer les colonnes F, G et H il n'y a pas de problème et plusieurs possibilités.
quelles sont les cellules accessibles
une fois renseignée tu veux les bloquer difinitivement ou accessible avec un mot de passe qui te sera réservé.
Pour comprendre ton tableau il serait souhaitable d'avoir un modèle de fichier sans notes confidentielles mais avec des annotations expliquatives que tu peux joindre avec ce lien

https://www.cjoint.com/

peux tu expliquer le fonctionnement et expliquer ta phrase:
mais il faudrait que ce soit lors de la correction c a d je mets "15 dans la cellule b9", cela reste blanc mais lorsque je fais une correction dans "b9", là, cela apparait en rouge

les valeurs en B sont saisies manuellement ou le résultat de C, A, D

et en D, F et H les valeurs ont saisies comment ou le résultat de quelle combinaison
0
salut Mike,

pour les colonnes à bloquer, ce serait toute les cellules, et accessibles avec un mot de passe

pour cette phrase mais "il faudrait que ce soit lors de la correction c a d je mets "15 dans la cellule b9", cela reste blanc mais lorsque je fais une correction dans "b9", là, cela apparait en rouge", j'ai trouvé la solution.

pour cette phrase "et en D, F et H les valeurs ont saisies comment ou le résultat de quelle combinaison ", j'ai essayé de compléter ta macro en y incorporant les colonnes D, F ,H et sans succès, c'est à dire que les cellules ne se mettent en rouge. donc c'est vraiment compliqué de créer des macro.

je t"envois un fichier excel sur cjoint
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
4 oct. 2010 à 22:30
Re,

Mais en D, F et H que veux tu faire mettre ces cellule en rouge si B change deux fois ou veux tu les soumettre aux même conditions que B, c'est à dire si une valeur change deux fois en D elle devient rouge idem pour F et H
0
je voudrais mettre par ex" mettre 10 en colonne D "et que si on mets "11", que cela devienne rouge,

sur les 4 colonnes est il possible de mettre la même macro que celle que tu m'as créé en colonne B, je n'y arrive pas
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
5 oct. 2010 à 11:05
Re,

Si je comprends bien, tu veux que les valeurs des colonnes B, D, F et H passe en rouge à la deuxième modification, c'est cela !!!

Ton tableau se termine à quelle colonne !!!
0
slt Mike
mon tableau se fini en colonne H pour les chiffres et les 2 suivantes I, J pour les textes.
merci
Éric
0
j'ai oublié, oui c cela, quelles passent en rouge à la deuxième modification
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
5 oct. 2010 à 11:28
Re,

Je te prépare un code et un petit montage dans l'après midi
0
re
ok c cool, un dernier truc que j'ai essayé et qui ne fonctionne comme je veux, en b40, j'ai fait une mfc, qui dit que au delà de 10 la cellule se met noir avec chiffre blanc, mais il ne veut pas clignoter sur le 10 pour avertir qu'il faut arrêter de rentrer des nombres, j'ai beau ajouter une autre mfc avec des données que j'essaye de comprendre mais j'ai l'impression que l'on ne peut pas faire ce genre de programme en mfc, y a t 'il une solution ?
merci pour tout

Éric
0
j'ai oublié de te demander de mettre un mot de passe dans la macro

merci

Éric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
5 oct. 2010 à 23:56
Re,

Je ne t'ai pas oublié, manque de temps. Je te prépare tout cela rapidement.

le mot de passe pour la macro, tu veux dire protéger le module qui contient la macro pour contrôler les accès ou les limiter !
0
re

oui c ça

cimer

eric
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
6 oct. 2010 à 15:36
Re,

Voila, voila, recupère le fichier avec ce lien, regarde deux possibilités sur les deux feuilles

https://www.cjoint.com/?0kgpGAQGEVT

pour protéger le code VBA, clic droit sur l'onglet de feuille et Visualiser le code ou touche Alt et touche de fonction F11
Outils/Propriétés du VBAProjet/onglet Protection, coche verrouiller le projet pour affichage et saisi un mot de passe que tu confirmes (ATTENTION DE NE PAS L'OUBLIER)
0