Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/07/2011, 23h28   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 1
Points : 1
Par défaut Bloquer une cellule par rapport à une sélection

Bonjour,

J'avance mon petit bout de chemin sur mon tableau et je vous remercie de votre aide.

J'ai une autre petite question.

Voilà, le cas est le suivant : j'ai deux cellules N7 et N8. Dans la cellule N7, j'ai créé par le biais de données, validation des données, une liste ou deux choix sont possibles : O/N (Oui ou Non). Ce que j'aimerais faire, c'est que quand je sélectionne O dans N7, on peut renseigner N8 manuellement, par contre si je mets N ou rien dans N7, cette cellule soit grisée ou bloquée.

Merci pour votre aide.
CALLEBOUT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 07h44   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Par défaut Proposition

Bonjour,
Blocquer une cellule à mon avis ne peut se faire qu'à travers la protection de la feuille.
Par défaut toutes les cellules d'une feuille sont verrouillées, mais cela n'a pas d'effet tant que la feuille n'est pas protégée.
Donc il faut au départ que N7 ne soit pas verrouillée. Les autres cellules où on doit renseigner des données non plus.
Ensuite on clique droit sur l'onglet de la feuille et on choisi Visualiser le code.
L'editeur VBA s'ouvre on a deux listes dans le haut de l'écran à gauche il est inscrit General et à droite Déclarations.
Ouvrir celle de gauche et choisir Worksheet automatiquement celle de droite se met sur SelectionChange, ouvrir la liste et choisir l'évènement Change
on a alors ceci
Code :
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
 
End Sub
on tape alors le code dans cette procédure

Code :
1
2
3
4
5
6
7
8
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Column <> 14 Then Exit Sub 
     If Target.Value = "O" Then 
          Sheets("NomDeLaFeuille").Unprotect
     Else
          Sheets("NomDeLaFeuille").Protect
     End If
End Sub
Il faut que la feuille soit protégée au départ et que la cellule N8 soit verrouillée.
Il sera peut-être nécessaire de reprotéger la feuille après avoir renseigné N8 à vous de voire.
Il y a peut-être d'autres solutions. Vous verrez bien.
Edit : Je viens de regarder dans l'aide VBA Excel et j'ai trouver ce qui suit

Citation:
Référence du développeur Excel
Range.Locked, propriété
Cette propriété renvoie ou définit une valeur de type Variant qui indique si l'objet est verrouillé.
Syntaxe

expression.Locked

expression Variable qui représente un objet Range.

Remarques


Cette propriété renvoie la valeur True si l'objet est verrouillé, la valeur False si l'objet peut être modifié avec une feuille de calcul protégée ou la valeur Null si la plage spécifiée contient à la fois des cellules verrouillées et déverrouillées.


Exemple


Cet exemple montre comment déverrouiller les cellules A1:G37 contenues dans la feuille Sheet1 de sorte qu'elles puissent être modifiées lorsque la feuille est protégée.

Visual Basic pour Applications
Worksheets("Sheet1").Range("A1:G37").Locked = False
Worksheets("Sheet1").Protect
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 13h12   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 885
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 885
Points : 7 151
Points : 7 151
Bonjour,

Une solution qui empeche la selection de la cellule en utilisant l’évènement Worksheet_SelectionChange

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Worksheet_Change(ByVal Target As Range)
 
'Applique un fond de couleur
If Target.Address = "$N$7" Then
    If UCase(Target.Value) = "N" Then
        Range("N8").Interior.ColorIndex = 15
    Else
        Range("N8").Interior.ColorIndex = xlNone
    End If
End If
 
 
End Sub
 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Action si selection N8 interdite
If Target.Address = "$N$8" And Ucase(Range("N7").Value) = "N" Then
    Range("N7").Select
End If
End Sub
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 23h06   #4
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 1
Points : 1
Par défaut Merci

Merci beaucoup pour votre aide.

Jerome, ta proposition est très intéressante mais malheureusement elle ne passe pas sur excel 2010 ou alors je m'y prends mal.

J'ai essayé une autre solution un peu plus batarde mais si tu veux jeter un oeil sur mon fichier alors fais moi signe.

Merci tout de même.
CALLEBOUT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 13h17   #5
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 885
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 885
Points : 7 151
Points : 7 151
affiche ton code
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 11h49   #6
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
Citation:
Envoyé par CALLEBOUT
si je mets N ou rien dans N7, cette cellule soit grisée ou bloquée.
si c'est bien un ou, tu peux te contenter d'une mise en forme conditionelle et griser ta cellule quand N7 = N. elle ne sera pas verrouillée mais sera grise
alsimbad est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 12h18   #7
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 1
Points : 1
Citation:
Envoyé par alsimbad Voir le message
si c'est bien un ou, tu peux te contenter d'une mise en forme conditionelle et griser ta cellule quand N7 = N. elle ne sera pas verrouillée mais sera grise
merci pour ta réponse. Comment faire pour la verrouiller ?
CALLEBOUT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 13h08   #8
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
si tu tient a la verrouiller, c'est donc un ET dans ta question. il ne te reste que le VBA, suis les conseils écris dans le reste du post
alsimbad est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 13h16   #9
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
tu as une autre posibilité qui t'evite le VBA
il te faut utiliser une troisieme cellule qui vas remplacer la valeur N8
tu as une case ou l'utilisateur ecris oui ou non (ton N7)
tus a une case ou l'utilisateur ne met rien s'il écris N et ou il est sensé ne rien mettre s'il écris oui
et au cas ou il se goure tu rend la réponse N prioitaire dans une troisiéme cellule, celle utilisée dans ton calcul
Code :
1
2
 
= si (N7 = "N";"";si(N7 = "O";N8)
alsimbad est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h34.


 
 
 
 
Partenaires

Hébergement Web