Bloquer cellules Excel 2016

Bonjour à tous,

Un peu de contexte... J'ai créé un fichier Excel qui me sert de Bon de Commande pour que mes clients le remplissent directement et me libérer du temps notamment pour éviter qu'ils se trompent dans les références.

J'ai utilisé 2 boutons en VBA, le premier permet de valider les produits que le client désire en fonction des produits sur lesquels le client à marqué des quantités et lance une impression pour créer un fichier PDF. Le deuxième permet de revenir au début et supprimer le contenu des cellules oranges.

J'ai protégé la feuille de sorte à ce que seules les cellules en orange/rose puissent être modifiable par le client. J'ai également protégé mon code VBA.

Sauf que depuis que j'ai protégé toute ma feuille de calcul à part les cellules oranges/roses, les boutons ne marchent plus.

Est ce que vous avez une solution ?

Je vous joins une capture d'écran d'une partie de ma feuille afin que ce soit plus visuel.
Merci !

Matthieu

capture

Bonjour,

Plus qu'une copie d'écran, c'est le fichier (sans données personnelles) qui serait nécessaire pour pouvoir te répondre ...

Hello, voici le fichier.

Je n'ai pas mis de mdp sur les protections si tu veux les ôter :)

18forum-exemple.xlsm (32.50 Ko)

Bonjour,

Le code des fonctions "Filtrage_Commande()" et "Efface()" renvoie une erreur car les plages de cellules que tu y indiques couvrent des cellules protégées donc le code ne peut pas les modifier.

Soit tu déprotèges la feuille en début de procédure

With ActivesSheet
    .Unprotect
    ...

et la reprotègeen fin de procédure

    ...
    .Protect
End With

, soit tu te limites aux plages réellement modifiables par l'utilisateur (nottamment pour "Efface()" -> ligne 555 et pas 600).

Comme je ne sais vraiment pas coder, tu peux m'indiquer où est l'erreur ?

Je te remercie pour ton aide :)

image

Bonjour,

Sur la copie d'écran, je ne vois pas de message d'erreur donc difficile de t'en indiquer l'origine .

Je te renvoie une version avec les modifications et qui fonctionne. J'ai mis en commentaire les lignes d'origine que j'ai modifiées avec le nouveau code juste en dessous.

Bonjour Mballin, Cylfo,

Normal, car ActivesSheet n'est pas reconnu car c'est ActiveSheet qu'i faut écrire.

Et ainsi la propriété Unprotect sera bien appliquée.

Donc, supprimer le s en trop.

@X Cellus,

@Mbalin, excuses-moi ! par contre dans le code joint au fichier c'est correct et regardes la fonction "Efface()" car il n'est pas indispensable de déprotéger / protéger la feuille si tu limites la plage à effacer à celle qui peut être effectivement modifiée par l'utilisateur.

@X Cellus @Cylfo merci pour votre aide tout fonctionne super bien !

Rechercher des sujets similaires à "bloquer 2016"