Verouillée saisie dans une liste

M

Marc

Guest
Bonjour,
Je cherche comment après avoir selectionné une donnée dans une liste déroulante, verouillée cette donnée et ne plus avoir accès au menu déroulant de la liste.
J'espère que ma question est assez claire, j'attends vos conseils éclairés

Marc
 
R

RENATO

Guest
Bonsoir Marc,

On imagine que ta fenêtre déroulante est reproduite sur les cellules C2 à C10 et qu'elle contient les valeurs "MARC" et "RENATO"

Voici qq lignes de code très certainement perfectibles qui devraientt je le souhaite t'apporter une première solution.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
Set Plage = Intersect(Target, Range("c2:c10"))
If Plage Is Nothing Then Exit Sub
For Each cellule In Plage
If cellule.Value = "MARC" Then
With Selection.Validation
.Delete
End With
ActiveCell.Offset(0, 1).Select
End If
If cellule.Value = "RENATO" Then
With Selection.Validation
.Delete
End With
ActiveCell.Offset(0, 1).Select
End If
Next
End Sub

Qu'en penses-tu ?

Bonne soirée

Rénato
 
J

Jean-Marie

Guest
Bonsoir

J'ai essayé avec des formules de le faire, voilà la formule à mettre dans le champ "source" de la boîte de dialogue de la liste de validation.
=SI(ESTVIDE(B1);$A$1:$A$26;"")

en imaginant que les données de la liste sont en A1:A26, et que la saisie ce fait en B1. Tu peux valider cette formule sur une plage de cellules, il suffit de remplacer la réf. B1 par la réf. de la cellule active dans ta sélection.

@+Jean-Marie
 
@

@+Thierry

Guest
=> DEMO Liste de Validation Mono Usage et Cellule Verouillée après Sélection...

Bonjour Marc, Rénato, Celeda, Jean-Marie "El Sombrero", et le Forum !

Bon alors vu que je sais que Celeda aime bien les Listes de Validation, et vu que la réponse de Rénato à mon avis est trop contraignante par une information en "dûr" dans le code, je propose une chti démo pour bien commencer ce dimanche.

Bon Dimanche à tous et toutes
@+Thierry
 

Pièces jointes

  • Validation-List-Locked-V01.zip
    20.5 KB · Affichages: 15
C

Celeda

Guest
Bonjour,

hé hé hé hé hé petit dejeunêr au lit servi avec café, tartines de beurre et confiture d'oranges et.............................liste de validation de @+Thierry, franchement c'est pas du service cela !!!

y en a qui lisent leur journal moi c'est XLD !!lol!!!

bon tu nous as fait encore un truc à 4 h du mat !! Ton dévouement pour le forum est vraiment remarquable ou bien alors c'est ton dévouement pour les listes de validation ou bien alors..............je n'ose le croire.........se serait pour moi ?!!! oh lol!! je rêve toute réveillée là!!hi hi hi bon j'aime tellement bien t'embêter et avant de partir j'en profite un peu.

Merci beaucoup @+Thierry,............................................

......................................................................................

mais passons à mes petits problèmes de manip...tu croyais pas t'en tirer comme cela quand même avec moi !!lol!

j'ai un petit truc de rien, mais de rien du tout qui ne s'initialise pas très bien (ou alors j'ai loupé un truc) :

- quand j'ai fait le choix et que je demande une réinitialisation avec le bouton Dynamic Reset, ok, il le fait, mais si je veux selectionner de nouveau avec la liste, regarde dans l'image ce qu'il se passe avec la liste.

mais si j'appuie de suite sur Simple Reset, tout rendre dans l'ordre,

- N'aurais-je pas une incompatibilité avec win 98 et excel 2000 ? -

j'ai de nouveau une liste qui se suit normalement, les noms en-dessous
des autres.


Voilà c'est tout. Il faut dire aussi à Marc, que quand il a choisi une donnée, il ne peut revenir dessus puisque le but de cette démo est de protèger la donnée en ne proposant plus de lsite de validation, et donc s'il lui prend l'envie d'effacer la donnée à la mimine, il devra la remettre à la mimine.

Merci beaucoup @+Thierry,


et pour le diner...........??????


bon dimanche à tout le monde,

Celeda
 

Pièces jointes

  • ListeVerrouilee_Picture.zip
    35.7 KB · Affichages: 12
@

@+Thierry

Guest
Coucou Celeda, Pat5, Rénato, Jean Marie, Marc, le Forum

Aie Celeda, ton problème m'ennuie, dans le Lien supprimé avais-tu ce problème car le procédé est casiment le même mis à part un chouillat en moins...

Mis à part çà, je ne sais pas encore pourquoi çà ne passe pas chez toi, j'ai fait çà sous 2000 avec un vieux PIII sous WinMe ce qui est assez proche de ta config.

Sinon, en attendant, tu peux n'utiliser que le "Simple Reset" en le rendant dynamique par l'adjonction de la macro d'actualisation de "TheList" (plage nommée) ce qui aura exactement le même effet que le "Dynamic Reset".

Instuctions :
Dans la macro "SimpleBuildingValidationList" la première ligne suivant le "Dim" pour lancer la macro de plage nommée dynamiquement en ajoutant une ligne avec simplement : "ReNamePlage" .

Désolé que mon cadeau pour toi ne soit pas impeccable !

Bonne Semaine à toi et au Forum
@+Thierry
 
@

@+Thierry

Guest
Re: Verouiller saisie dans une liste (Attn Celeda)

Bonjour ce fil,

Tiens je pense que Celeda n'a pas dû voir ce fil, j'attire son attention au cas où car je l'ai vu passer sur le forum depuis...

Sinon et bien Marc à dû être "sérieusement vérouillé" car depuis sa demande on ne l'a plus vu !

Bon Appétit
@+Thierry
 
C

Celeda

Guest
Bonjour,

Merci @+Thierry, je l'avais pas vu effectivement !!!! et pour cause
je fais fissa en ce moment, pardonne moi.

Je vais tenter de faire comme tu dis mais j'ai des doutes. Si tu es ok, je vais te revenir avec mes difficultés.


Bisous

Celeda
 
C

Celeda et Zon

Guest
Bonjour,

@+Thierry :

Celeda :
Ayez c'est fait!! on a trouvé.......enfin......Zon a trouvé....ce qui clochait chez moi !!! comme d'habitude.

voici pour que cela fonctionne bien chez moi ( du coup dans liste de Validation Recherche V3, je recontrais le même probléme et j'ai changé par un point virgule et cela fonctionne bien)


Zon :
au lieu de passer par un tableau on renomme la plage définie.Au lieu de définir la variable string thesource par une boucle en y mettant la virgule entre chaque valeur de cellule. On appelle renamerange(de la même façon que pour simple..) pour redèfinir thelist(la pklage nommée)


Option Explicit
'Thierry's démo sur www.Excel-Downloads.com, April 2004

Sub DynamicBuildingValidationList()
Dim WSSource As Worksheet
Dim WSCible As Worksheet
Dim Plage As Range, Cell As Range
Dim Cible As String

Authorized = False
With ThisWorkbook
Set WSCible = .Sheets("Interface")
Set WSSource = .Sheets("Database")
End With

With WSCible
.Unprotect
Set Plage = .Range("A2:A25")
End With
ReNamePlage
For Each Cell In Plage
With Cell
Cible = Cell.Address
.Value = ""
.Locked = False
On Error Resume Next
With WSCible.Range(Cible).Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=TheList"
End With
End With
Next Cell
With WSCible
.Protect UserInterfaceOnly:=True
'Application.EnableEvents = True 'attention à remettre en sortie
.Range("A2").Activate
End With
End Sub


Celeda et Zon
 
@

@+Thierry

Guest
Bonjour Marc, Zon, Pat5, Rénato, Jean Marie et Celeda, et le Forum

Oui en fait j'avais mis les deux procédures au cas où ! Et c'est vrai que dans un exemple comme celui-ci, la Procédure Simple avec le rename de plage est largement suffisante. Mais je pense à des procédures plus complexe où l'on aurait besoin de cette construction dynamique de TheSource... (comme dans le Super-RechercheV)

Est-ce seulement Celeda qui rencontre ce problème ?

A ton avis Zon est-ce dû à la config de Win 98 de Celeda ? ou peut-être simplement à des paramètres régionaux US et séparateur différent ? (je vais regarder çà du bureau car j'ai fais çà à la maison, en FR, mais au boulot je suis en US.

Enfin merci pour ton intervention.

Bonne journée à tous et toutes
@+Thierry
 
Z

Zon

Guest
Salut,

Ce problème ne vient pas de Windows à priori car en bidouillant les paramètres régionaux de ce dernier il me faut quand même la virgule. C'est un truc récurrent avec Excel, j'ai eu le même problème avec les graphiques en VBA , on a des soucis avec les dates aussi (par contre elles viennent plutôt des paramètres windows).
Que tu mettes une virgule ou point virgule Formula1 te renvoie la même chaîne de caractère...

Pourquoi ne pas mettre une constante avec la , ou le ; ? Pour voir ce qu'à Celeda comme résultat, mettre un ; à la place de la virgule dans le code

A+++
 

Discussions similaires

Statistiques des forums

Discussions
314 190
Messages
2 106 987
Membres
109 733
dernier inscrit
chardou