Déverrouiller cellule si

Fermé
Joo - 28 sept. 2017 à 12:05
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 29 sept. 2017 à 15:13
Bonjour à tous,

Je travail actuellement sur un fichier où toute la feuille est verrouillée à l’exception de la colonne D dans laquelle l'utilisateur peut rentrer un nombre de 1 à 99 (via un menu déroulant). Ma colonne E, est une simple formule de recherche (=vlookup) qui affiche un description du nombre.

Sauf que pour certaines valeurs (en l’occurrence 25 & 50) le descriptif est "Autre" et l'utilisateur doit en préciser la nature.

J'aimerais savoir s'il est possible de faire un petit code qui lorsque la valeur en (D,row) est 25 ou 50, alors ma case (E,row) se déverrouille et supprime la formule à l'intérieur de manière à ce que l'utilisateur puisse faire une saisie libre. Et évidemment si la valeur en (D,row) change et n'est plus 25 ou 50 alors la formule (stocké préalablement dans une variable) revient et ma cellule (E,row) se reverrouille.

Je pense que la procédure devrait se déclencher sur à l'occasion d'un selection_change conditionné sur la colonne D (je ne vois pas d'autres alternative, peut être qqch auquel je n'ai pas pensé ?).

Pour être honnête, j'ai fais plusieurs essais par moi-même mais jamais concluant, je dois être nul en syntaxe ou oublier qqch...

J'espère que quelqu'un pourra me donner un petit coup de main.

Merci d'avance et bonne journée !

6 réponses

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 sept. 2017 à 14:26
Bonjour

Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

CDlmnt
0
Bonjour,

Voici le fichier comme demandé : http://www.cjoint.com/c/GICncxkpyLT

Merci pour l'aide
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 sept. 2017 à 16:03
Un essai
http://www.cjoint.com/c/GICodnJGWAB

Cdlmnt
0
Merci je vais essayer de bricoler ce qu'il me faut avec tout ça

Je pensais que le code serait plus "simple" que ça.

Encore merci :)
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 sept. 2017 à 17:21
Je pensais que le code serait plus "simple" que ça.
Le code en lui même n'est pas très compliqué (en fait 2 fois 4 lignes). Les constantes en début de module décrivent la configuration des données, elles évitent de toucher au code de la procédure si la configuration cahneg

Cdlmnt
0
Bonjour,

Je reviens car j'ai un petit soucis dans l'adaptation du code à mon vrai fichier.
Je pense que c'est du au fait que ma colonne "E" celle qui accueille la formule est une cellule fusionnée de E à G.

Est-ce possible que cela empêche le code de fonctionner?

Merci d'avance.
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
29 sept. 2017 à 10:23
1. Eh oui, la fusion de cellules est souvent/toujours une source de problèmes, et les macros sont très chatouilleuses là dessus.
2. Si tu n'envoies pas un fichier exemple construit comme le vrai, c'est encore une source de problèmes
Un essai qui tient compte de la fusion Exx:Gxx
http://www.cjoint.com/c/GIDitEshQTB

Cdlmnt
0
Merci pour la réponse.
Désolé je n'avais pas fais attention au fait que mes cellules étaient fusionnées.

Encore une petite question, peux-tu m'expliquer comment fonctionne une plage nommée dynamiquement et quelle est son avantage par rapport à une plage "normale" ?

Merci d'avance.
0
J'ai encore besoin d'un peu d'aide.
Je n'arrive pas à faire fonctionner le code correctement : http://www.cjoint.com/c/GIDjkmurrvT
0

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

Posez votre question
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
29 sept. 2017 à 11:45
Tu as un excel anglais ?
Essaies ceci
1. Dans la formule
Const formule As String = "=SI(Dxx<>"""";RECHERCHEV(Dxx;Tbase;2;FAUX);"""")"
Essaies de mettre IF à la place de SI (tu as déjà remplacé FAUX et RECHERCHEV !)
2.Remplace FormulaLocal par Formula ici
Range(co2 & li).FormulaLocal = f

Si on ajoute/enlève des lignes/colonnes à une plage nommée dynamiquement, le nom attribué est toujours associé à la nouvelle plage, ça évite de redéfinir la plage à chacune des modifications de celle-ci

Cdlmnt
0
Oui mon Excel est en anglais c'est pour ça que j'ai fais les modifications sur la formule mais... j'ai oublié le SI................................ Je suis vraiment bon à rien.

Merci pour l'aide et toutes les infos. Maintenant ça devrait fonctionner !

Bonne journée :)
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
29 sept. 2017 à 11:58
mais... j'ai oublié le SI
eh oui, ça arrive !

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Bonne journée
0
Je retire ce que j'ai dit... Ca ne fonctionne toujours pas, l'erreur reste la même au même endroit. La macro fonctionne bien lorsque on entre une des valeurs cibles (23 & 61), mais plante lorsqu'il s'agit d'une autre valeur (1 à 99, 23 & 61 exclu)

J'ai essayé plusieurs choses (sans succès) :
- Remplacer FormulaLocal par Formula
- Remplacer FormulaLocal par Value
- Remplacer Range(co2 & li) par Plage
- Remplacer Range(co2 & li) par Plage & FormulaLocal par Formula
- Remplacer Range(co2 & li) par Plage & FormulaLocal par Value

Une autre idée ?
0
⚠  Dans Excel anglais, pour les formules de la feuille, le séparateur d'arguments
est la virgule, pas le point-virgule (ma remarque est inutile si tu l'as déjà fait).
0
Hello,

Ta remarque est pertinente et solutionne mon problème !

Merci beaucoup pour ton intervention et encore merci à CCM81 pour son aide :)

Bonne journée et bon week-end à vous

PS : en tant qu'invité je ne peux pas passer le sujet en résolu, désolé.
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié le 29 sept. 2017 à 15:14
Eh oui, j'avais oublié les ; comme quoi ....
PS : en tant qu'invité je ne peux pas passer le sujet en résolu, désolé.
Profites en pour t'inscrire comme membre, ça sera fait pour la prochaine fois

Bon après midi
0