Protection de cellules - Excel 2013 - [Fermé]

Signaler
Messages postés
90
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
1 novembre 2019
-
 jl00700 -
Bonsoir,
Toujours sur mon appli Excel où je rencontre un nouveau PB…
J’ai protégé la feuille (Formulaire) de manière à ce que l’utilisateur ne puisse pas naviguer ailleurs que dans les cellules dédiées : E9 – E11 – E13 – E15 – E17 – E19 – E21 – E23 (champs enregistrés dans la base lors de la validation sauf E19)
Mais sur cette feuille j’ai également trois autres cellules (A1 – E8 - G19) que j’utilise comme suit :
- A1 : Enregistre le dernier n° d’ordre enregistré dans la base
- E8 : Champ calculé = A1 + 1 (champs enregistré dans la base lors de la validation)
- G19 : Acronyme dérivé à partir de la saisie E19 (champs enregistré dans la base lors de la validation)
Ces trois champs n’ont pas à être accessibles par l’utilisateur mais sont exploités dans ma macro d’enregistrement.
De ce fait… lorsque je lance la macro d’enregistrement des données du formulaire  Plantage.
En réfléchissant bien, je crois comprends pourquoi ; la macro ne peut s’exécuter correctement car les zones ne sont plus accessibles.
Mais comment faire pour remédier à cela ???
Je suis preneur de toutes suggestions.
Merci par avance de votre attention.
Cordialement
Jean

3 réponses

Messages postés
24791
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
25 janvier 2020
4 990
Bonjour
débuter la macro par
Activesheet.unprotect
la terminer par
Activesheet.protect

crdlmnt
Bj Vaucluse,
Merci de votre réponse...
J'ai déjà ces commandes dans ma macro !
Je vais regarder si il ne serait pas nécessaire d'intégrer d'autres fonctions dans ma macro.
Cordialement
Messages postés
23230
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 janvier 2020
5 875
Bonjour,

Plantage ce n'est pas très précis...
Ligne de code en erreur n° et libellé du message et tout ce qui peut être utile.
eric
Bonjour,
J'ai réfléchi à mon problème et trouvé la solution suivante :
Je supprime ma cellule verrouillée et l'information qui y figure (3caractères) je l'intègre dans le libellé de la cellule visible par l'utilisateur :
EXEMPLE : J'avais contrat durée indéterminé (E19) que je traduisait par CDI (G19) et je transférais dans ma base G19.
Afin de rester dans ma logique initiale, je supprime la cellule G19 et modifie les libellés en E19, ce qui me donne dans l'exemple précédent CDI - contrat durée indéterminémais à ce moment là je ne doit transférer que les 3 caractères gauche de E19 dans ma base...
Comment écrire cette fonction dans ma macro, je n'y arrive pas !Pourriez-vous m’aider.
Merci par avance.
Cordialement
Jean

NB : Tous mes libellés courts sont de 3 caractères.

Macro actuelle (extrait) :

Sheets("CréOp").Select
Range("G19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Base").Select
Range("H2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False