Macro Excel

Résolu/Fermé
syl-vie1 Messages postés 3 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 24 juin 2011 - 24 juin 2011 à 02:47
syl-vie1 Messages postés 3 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 24 juin 2011 - 24 juin 2011 à 20:19
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 mercredi 21 mars 2007 Statut Membre Dernière intervention 31 juillet 2023 193
24 juin 2011 à 06:42
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 vendredi 24 juin 2011 Statut Membre Dernière intervention 24 juin 2011
24 juin 2011 à 07:01
Je suis pas très connaissante dans ce domaine. Comment fait-on un pointeur?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
24 juin 2011 à 08:22
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
24 juin 2011 à 10:49
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
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 mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
24 juin 2011 à 17:18
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 vendredi 24 juin 2011 Statut Membre Dernière intervention 24 juin 2011
24 juin 2011 à 20:19
Merci à tous, j'ai finalement trouvé mon erreur... Plutôt que d'écrire Locked dans mon code, j'avais écrit Lock...
0