interdire la modification d'une feuille excel sauf avec userform

interdire la modification d'une feuille excel sauf avec userform - VB/VBA/VBS - Programmation

Marsh Posté le 25-05-2006 à 03:06:19    

Bonjour à tous.
 
Mon probleme est tres simple: Je souhaite interdire la possibilité de modifier des cellules d'une feuille excel autrement que par le biais d'une interface vba.
 
En fait j'ai cree une petite application/base de données, un formulaire permet de renseigner differentes categories et ces renseignements sont stoqués sur une feuille.
 
Le probleme qui se pose est que les utilisateurs modifient eux memes les champs sur la feuille si ils se rendent compte qu'ils ont fait une erreur, ce qui genere ensuite des erreurs de calcul; par exemple ils vont modifier 08:20 par 08h25 ce qui produira une erreur lorsque cette donnée sera utilisée dans un calcul.
 
merci d'avance pour vos reponses.

Reply

Marsh Posté le 25-05-2006 à 03:06:19   

Reply

Marsh Posté le 25-05-2006 à 04:44:20    

Bonjour,
C'est quoi la question ? Protéger la feuille ou apprendre à gérer les saisies en VBA ?
- Si c'est la question est Protéger la feuille : Outils / Protection / Protéger la feuille... avec pour toutes les cellules Format / Cellules  / Protection / Verrouillées.
- Si la question est Contrôler la saisie avec VBA, vaste problème !
De toute façon on peut très bien contrôler la saisie des utilisateurs sans protéger nécessairement la feuille ni passer par un USF.
Il faut que tu précises un peu (beaucoup) ta question et éventuellement joindre un modèle ici si tu veux une réponse adaptée.
Et puis... A première vue, bien que je n'ai pas testé à donf (mais j'y ai quand même passé une petite heure) ça va quand même être coton pour tester la cohérence d'une saisie horaire alors qu'une simple condition de validation sur la cellule suffirait.
A+


Message édité par galopin01 le 25-05-2006 à 05:50:09

---------------
roger
Reply

Marsh Posté le 25-05-2006 à 08:40:00    

A priori des instructions style ActiveSheet.unprotect,ActiveSheet.protect et UserForm.ShowModal=False, protection par Password du code VBA même si des utilitaires permettent d'en changer instantanément


Message édité par kiki29 le 25-05-2006 à 17:27:57
Reply

Marsh Posté le 25-05-2006 à 21:49:54    

Merci pour vos premieres reponses.
 
Je vais essayer de detailler un peu plus mon probleme car c'est vrai qu'apres relecture c'est assez vague.
 
Mon application permet de gerer des entrées et sorties de citernes.
lorsque la citerne arrive sur le site l'utilisateur clique sur un bouton de la feuille, ce qui affiche un formulaire où il doit remplir les champs suivants:
-nom de la citerne
-heure d'arrivée prevue
-heure d'arrivée sur le site
 
lorsque la citerne repart il clique sur un autre bouton qui affiche un autre formulaire, sur celui ci il remplit un champ "heure de depart"
 
à partir de ces données mon application genere une foule de stats.
 
le probleme qui se pose regulierement est que l'utilisateur intervient parfois directement sur la feuille du classeur excel (qui fait office de base de données) pour modifier des champs deja entrés auparevent ce qui peut generer des erreurs dans mes calculs de stats.
 
Je souhaiterai donc proteger la feuille contre les modifications "manuelles", ce que je sais faire, mais que cette feuille puisse etre modifiée lorsque le formulaire doit venir y ecrire des données.
 

Reply

Marsh Posté le 25-05-2006 à 22:54:15    

bonsoir,
Mets la macro suivante dans ton ThisWorkbook :
 
Private Sub Workbook_Open()
Worksheets("blabla" ).Protect Password:="galopin", UserInterfaceOnly:=True
End Sub
 
La feuille sera protégée vis à vis de l'utilisateur mais restera accessible aux macros.
A+


---------------
roger
Reply

Marsh Posté le 25-05-2006 à 22:55:31    

zz


Message édité par kiki29 le 25-05-2006 à 22:56:43
Reply

Marsh Posté le 26-05-2006 à 00:59:23    

Merci beaucoup pour ta reponse galopin (qui rejoint celle de kiki dailleurs, avec les precisions qu'il me fallait).
 
Edit:Ca marche parfaitement, merci encore.
 En revenche il suffit de visualiser le code pour voir le mot de passe mais bon, les utilisateurs n'ont pas une connaissance d'Excel aussi poussée ^^.


Message édité par Gruber Hans le 26-05-2006 à 01:05:58
Reply

Marsh Posté le 26-05-2006 à 06:13:56    

il est possible de protéger le code par un mot de passe...


---------------
roger
Reply

Marsh Posté le 26-05-2006 à 13:54:42    

Puis-je te demander comment tu fais ?

Reply

Marsh Posté le 26-05-2006 à 22:18:02    

Dans VBA :
Outils / Propriétés de VBA Project... Onglet Protection + Verrouiller...
A+


---------------
roger
Reply

Marsh Posté le 26-05-2006 à 22:18:02   

Reply

Marsh Posté le 10-06-2014 à 14:22:26    

Bonjour à tous,
 
Je me permets de revenir à cette ancienne discussion qui est fort utile...
Au niveau du code VBA est-il possible de laisser les zones de tri (excel) active car avec le code tel quel, elles ne le sont plus.
 
Merci à vous d'avance.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed