Permettre bon fonctionnement userform tout en ayant un fichier protégé

Notorious

XLDnaute Nouveau
Bonjour à tous !

Petite question par ce beau temps ensoleillé..

J'ai un (superbe) fichier servant à traiter les réclamations clients entre unités.
En résumant, ce fichier fonctionne par le biais d'Userforms.
Un userform correspond a un formulaire a remplir et a valider.
Une fois cliqué sur "valider", les informations des textboxs de ce formulaire se remplissent automatiquement dans une feuille Excel.

Le problème que je rencontre actuellement est que je veux interdire les modifications (suppressions / modification de cellule notamment) sur ma feuille par un autre biais que ces formulaires.
Je veux que lorsque je clique sur valider de mon formulaire, mes informations soient remplies dans mes cellules. Mais je veux interdire que l'on supprime quelque cellule que ce soit d'une autre manière.

Aujourd'hui, en protégeant ma feuille via la protection "outils, protection, protéger la feuille", cela empêche mes userforms de bien fonctionner. Aucune modif ne peut plus être faite.

Y aurai t'il un moyen, un code ou je ne sais quoi, qui permet ce que je veux réaliser ?

Bonne journée à tous

Notorious
 

tashiqi

XLDnaute Occasionnel
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

Bonjour
tu rajoutes ça avant l'édition dans ton code :
ActiveSheet.Unprotect mdp

et ça après l'édition
ActiveSheet.Protect mdp

en remplaçant mdp par ton mot de passe, ou en ajoutant
Const mdp = "TonMotDePasse" avant le début du code

Bonne chance

PS : Du coup, il faut aussi protéger ton code avec un mot de passe (même si ce mot de passe tombe en à peu près 10 secondes)
 

Pierrot93

XLDnaute Barbatruc
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

Bonjour,

pour que le code puisse s'exécuter sur une feuille protégée sans avoir à déprotéger / reprotéger la feuille, il faut que la protection soit faite par le cedo en utilisant l'argument "userinterfaceonly", code ci-dessous à placer dans le module "thisworkbook", procédure événementielle, se déclenche à l'ouverture du classeur :

Code:
Option Explicit
Private Sub Workbook_Open()
Sheets("Feuil1").Protect "toto", userinterfaceonly:=True
End Sub

bon après midi
@+
 

Notorious

XLDnaute Nouveau
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

Bonjour pierrot ! Et merci de te pencher sur mon problème ! :D

Tu me dis "il faut que la protection soit faite par le cedo en utilisant l'argument "userinterfaceonly"", mais qu'est ce que le Cedo? pardonne mon ignorance ! :confused:

Ensuite, j'ai testé ton code en l'adaptant bien sûr à mon fichier (mais comme à chaque fois que je découvre quelque chose ca ne fonctionne pas directement..^^) J'ai donc besoin que tu me confirme ce que j'ai saisi (en couleur ci dessous)

Private Sub Workbook_Open()
Sheets("nomdemafeuilleaproteger").Protect "aquoicorrespondentcesguillemets?", userinterfaceonly:=True
End Sub

Je l'ai placé non pas dans un module "this worbook" mais dans microsoft excel objects "thisworkbook", est ce pareil?

Pour précision, une cinquantaine de personne vont utiliser ce fichier, et seules les personnes possédant LE mot de passe pourront effectuer des modifications directement sur le fichier (cellules, lignes etc.)
autrement, à l'ouverture du fichier, le fichier doit etre verrouillé et seuls les userforms doivent fonctionner....
hmm ! :confused:

EDIT : Bonjour tashiqi, je vais etudier cette possibilité aussi ! ^^
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

Re,

Tu me dis "il faut que la protection soit faite par le cedo en utilisant l'argument "userinterfaceonly"",

Aarf... désolé... il fallait lire "par le code"....

aquoicorrespondentcesguillemets
entre les guillemets, c'est le mot de passe qu'il faut indiquer...

Je l'ai placé non pas dans un module "this worbook" mais dans microsoft excel objects "thisworkbook", est ce pareil?

oui, dans le module "thisworkbook" du classeur en question.... pour exécuter le code en dehors de l'ouverture du classeur, touche de fonction F8 dans l'éditeur vba...
 

tashiqi

XLDnaute Occasionnel
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

(quand je parlais des guillemets, je parlais de la méthode de Pierrot)
à part ça, c'est bien dans le "Thisworkbook" qui existe déjà qu'il faut le mettre, et pour ce qu'il y a entre guillemets bleu, tu as 2 possibilités :
Sheets("nomdetafeuilleaproteger")
Sheets(numérodetafeuillesansguillemets)
par exemple sheets(1) si c'est la première feuille
 

Pierrot93

XLDnaute Barbatruc
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

Re,

Sheets("nomdetafeuilleaproteger")
Sheets(numérodetafeuillesansguillemets)
par exemple sheets(1) si c'est la première feuille

on peu également le coder ainsi, en utilisant le "codename" de la feuille (celui que l'on voit dans le vba project"
Code:
Feuil1.Protect .....
 

Notorious

XLDnaute Nouveau
Re : Permettre bon fonctionnement userform tout en ayant un fichier protégé

C'est génial, tout simplement génial !

Je viens d'essayer et cela fonctionne très proprement !
Gros gros merci pierrot, et merci tashiqi également, je ne savais pas du tout que l'on pouvait nommer une feuille par son numéro ! c'est super pratique !! :D

A très bientôt vous deux !

Bonne fin de journée, et encore merci ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 863
Membres
103 007
dernier inscrit
salma_hayek