Macro excel blocage cellule et format
Résolu
ciel2505
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis controleur de gestion.
Pourriez vous m'aider svp?
1/ si je mets une croix dans une cellule de la colonne L je ne peux en mettre une dans la cellule correspondante (voisine) colonne M.
2/ si je mets une croix dans une cellule de la colonne M je ne peux en mettre une dans la cellule (voisine) correspondante colonne L.
3/ colonne P: la cellule ne peut être remplie que si on a une croix dans la colonne L + si l'utilisateur n'applique pas la regle du format DD/MM/YYYY-DD/MM/YYYY doit apparaitre un message d'erreur "error format" + impossibilité de noter qq chose dans la cellule correspondante (voisine) de la colonne Q
4/ colonne Q: la cellule ne peut être remplie que si on a une croix dans la colonne M + si l'utilisateur n'applique pas la regle du format DD/MM/YYYY doit apparaitre un message d'erreur "error format" + impossibilité de noter qq chose dans la cellule correspondante (voisine) de la colonne P
En vous remerciant pour votre aide
Je suis controleur de gestion.
Pourriez vous m'aider svp?
1/ si je mets une croix dans une cellule de la colonne L je ne peux en mettre une dans la cellule correspondante (voisine) colonne M.
2/ si je mets une croix dans une cellule de la colonne M je ne peux en mettre une dans la cellule (voisine) correspondante colonne L.
3/ colonne P: la cellule ne peut être remplie que si on a une croix dans la colonne L + si l'utilisateur n'applique pas la regle du format DD/MM/YYYY-DD/MM/YYYY doit apparaitre un message d'erreur "error format" + impossibilité de noter qq chose dans la cellule correspondante (voisine) de la colonne Q
4/ colonne Q: la cellule ne peut être remplie que si on a une croix dans la colonne M + si l'utilisateur n'applique pas la regle du format DD/MM/YYYY doit apparaitre un message d'erreur "error format" + impossibilité de noter qq chose dans la cellule correspondante (voisine) de la colonne P
En vous remerciant pour votre aide
7 réponses
-
Bonjour,
1/ que fait on si je saisis un autre caractère que "x" dans L ou M ,
2/ si je me suis trompé (par ex "x" dans L au lieu de M) et/ou en 2° étape après le message d'erreur suite à un mauvais format ?
En résumé, comment ré-initialiser (tout ou par étape)? puisque des cellules sont condamnées
Pas simple! -
Bonjour,
Ce que tu cherche n'est pas facile à faire.
1°) Sélectionner les colonnes M et P
2°) Clic droit >> Format cellules >> Protection >> et décocher Verrouiller
3°) Outils >> Protection >> Protéger la feuille (pas mettre de mot de passe)
4°) clic droit sur l'onglet de la feuille >> Visualiser le code.
4°) Dans la fenêtre coller le code ci-dessousOption Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim TB Application.EnableEvents = False ActiveSheet.Unprotect If Not Intersect(Target, Columns("L")) Is Nothing Then 'bloque/débloque la cellule M Target.Offset(0, 1).Locked = UCase(Target) = "X" If UCase(Target) = "X" Then Target.Offset(0, 4).Locked = False Target.Offset(0, 4).Select End If ElseIf Not Intersect(Target, Columns("M")) Is Nothing Then 'bloque/débloque la cellule L Target.Offset(0, -1).Locked = UCase(Target) = "X" If UCase(Target) = "X" Then Target.Offset(0, 4).Locked = False Target.Offset(0, 4).Select End If ElseIf Not Intersect(Target, Columns("P")) Is Nothing Then 'vérifier les conditions et éventuellement afficher un message TB = Split(Target, "-") If UBound(TB) <> 1 Then MsgBox "Vous devez entrer les dates sous le format JJ/MM/AAAA-JJ/MM/AAAA" Target = "" ElseIf Not (IsDate(TB(0)) Or IsDate(TB(1))) Then MsgBox "Vous devez entrer les dates sous le format JJ/MM/AAAA-JJ/MM/AAAA" Target = "" End If End If ActiveSheet.Protect Application.EnableEvents = True End Sub
Il y a moyen d'être encore plus précis mais c'est une piste, à toi de l'améliorer.
A+
Note : pour mettre des double date dans les colonnes P et G tu doit les configurer avec le format texte.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
1/ si je mets une croix dans une cellule de la colonne L je ne peux en mettre une dans la cellule correspondante (voisine) colonne M.
????
Tu n'a pas suivi l'ordre des opérations à effectuer ???
Recommence avec un nouveau classeur
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.-
-
tu n'a pas fait...
2°) Clic droit >> Format cellules >> Protection >> et décocher Verrouiller
AVANT DE VERROUILLER.
Si tu ne sais pas suivre des explications détaillées je ne vois pas comment on va pouvoir se comprendre.
Voir c'est Exemple -
-
-
pardon c vrai que moi j'ai le fichier devant moi
ça je ne le retrouve pas dans la macro?
4/ colonne Q: la cellule ne peut être remplie que si on a une croix dans la colonne M + si l'utilisateur n'applique pas la regle du format DD/MM/YYYY doit apparaitre un message d'erreur "error format" + impossibilité de noter qq chose dans la cellule correspondante (voisine) de la colonne P
En vous remerciant pour votre aide
-
-
SUPPRIME, JE NE SUIS PAS UN CERVEAU MACRO
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
Merci mais ça ne fctionne pas
si je mets x en cellule L5 (mes enonces vt de lignes 1 à 4) je reussis à mettre x en cellule M5 et vice versa
si je mets un format date faux apparemment la colonne Q le prend
si je mets une croix sans L5 j'arrive quand meme à rentrer une date dans Q alors que je devrais ne pouvoir que la rentrer dans P
si je mets une croix dans M5 j'arrive quand meme à rentrer une date dans P alors que je ne devrais pouvoir la rentrer que dans Q
j'en peux plus de cette macro ;-)
je veux un cerveau macro! -
je veux un cerveau macro!
Le débile qui a essayé de t'aider te remercie -
Bonjour le Forum,
Moi aussi de suis ... à la retraite.
J'ai rapidement compris qu'il fallait appliquer quelques règles fondamentales avec l'utilisateur lambda pour éviter de nombreux problèmes, en particulier quand on reçoit de nombreux fichiers de différentes sources :
- ne jamais mettre de macro dans les fichiers utilisateurs
- demander des informations simples (éviter toute syntaxe particulière)
- utiliser la puissance de calcul d'Excel pour transformer ces informations
- protéger les feuilles de calcul (sans mot de passe, ça ne sert qu'à être oublié)
- définir le format numérique des valeurs à saisir, notamment des dates.
- utiliser des formules qui laissent des libertés à l'utilisateur, beaucoup de SI() et N()
- utiliser la validation des données chaque fois que c'est utile pour :
----- afficher un message d'information pour la saisie
----- contrôler l'information saisie et afficher le message d'erreur éventuel
Donc pour répondre aux question :
1) en L2 : Données / Validation / Personnalisé / Formule : =M2<>"x"
2) en M2 : Données / Validation / Personnalisé / Formule : =L2<>"x"
3) en P2 : Données / Validation / Date ou Personnalisé ....
4) idem
Cordialement
Patrice