Macro Excel

Résolu
syl-vie1 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
syl-vie1 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dois créer un formulaire que beaucoup de gens utiliseront dans Excel. Au bout de chaque ligne
je vais créer un bouton pour qu'ils puissent réserver. Mon problème est que je ne voudrais pas que d'autres utilisateurs viennent modifier ce que un utilisateur aura inscrit. Je voudrais donc que lorsque l'utilisateur cliquera sur le bouton "réserver" les cellules qu'il aura complétées se verrouilleront. Est-ce possible? Si oui, les étapes à suivre seraient grandement appréciées.

Merci,



A voir également:

4 réponses

piopicolo Messages postés 1395 Date d'inscription   Statut Membre Dernière intervention   193
 
Vous faites un pointeur. Lorsque'une case est réservée la première fois le pointeur (une cellule sur une autre feuille ou fichier) passe à 1.
Ensuite à chaque fois que quelqu'un tape ou essaye de modifier si le pointeur est à 1 la case revient avec déjà réservé ou autre alerte.
La feuille des cellules pointeuses sont verrouillées.
Vous pouvez inventer des pointeurs pour n'importe quoi.

A+
0
syl-vie1 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis pas très connaissante dans ce domaine. Comment fait-on un pointeur?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Il faut protéger ta feuille.
Au départ toutes les cellules sont verrouillées, il faut déverrouiller celles qui recevront les données (clic-droit sur ta sélection puis format de cellule).
Pour verrouiller une sélection en vba c'est par exemple :
[B3].locked=true
ou worksheets("Feuil3").[B3:F3].locked=true

Lors de la validation tu testes avec :
if [B3].locked=true then
'traitement cellule verrouillée
else
'traitement cellule libre
endif

eric
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut eriiic, syl vie,
En plus de la protection de la feuille, je te suggère également de la rendre "invisible".
Pour cela :
Sheets("Feuil3").Visible = xlVeryHidden
permet de vraiment masquer ta feuille car elle n'apparait même pas dans le menu Format/Feuille/Afficher...
Pour masquer simplement une feuille :
Sheets("Feuil3").Visible = False
Par contre, après pour l'utiliser par macro il te faudra procéder par "With" :
With Sheets("Feuil3")
    .B3:F3].locked=true 
End With
pour reprendre l'exemple d'eriiic.
0
syl-vie
 
j'obtiens un message d'erreur d'exécution '1004' Impossible de définir la propriété Locked de la classe Range
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Sans ton code difficile de répondre...
[B2:C5].Locked = False marche très bien par exemple

eric
0
syl-vie1 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à tous, j'ai finalement trouvé mon erreur... Plutôt que d'écrire Locked dans mon code, j'avais écrit Lock...
0