OVH Cloud OVH Cloud

listes deroulantes

5 réponses
Avatar
philippe d'isere
bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante et je
voudrais que le nom selectionne disparaisse de la plage d'origine afin qu'il
n'apparaisse plus afin de ne pas pouvoir saisir deux fois le meme nom
comment puis-je faire ?
merci d'avance

5 réponses

Avatar
LANIMAL
bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante et je
voudrais que le nom selectionne disparaisse de la plage d'origine afin qu'il
n'apparaisse plus afin de ne pas pouvoir saisir deux fois le meme nom
comment puis-je faire ?
merci d'avance


Avatar
philippe d'isere
je n'ai pas bien compris votre reponse


bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante et je
voudrais que le nom selectionne disparaisse de la plage d'origine afin qu'il
n'apparaisse plus afin de ne pas pouvoir saisir deux fois le meme nom
comment puis-je faire ?
merci d'avance





Avatar
philippe d'isere
merci et bravo pour la qualite de votre aide


bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante et je
voudrais que le nom selectionne disparaisse de la plage d'origine afin qu'il
n'apparaisse plus afin de ne pas pouvoir saisir deux fois le meme nom
comment puis-je faire ?
merci d'avance





Avatar
Ange Ounis
Essaye cette procédure, à recopier dans le module de la feuille qui contient la
plage de cellules avec liste de validation (la liste elle-même est supposée être
dans un coin de la même feuille -> si ce n'est pas le cas, remplacer 'Feuil1'
par le codename de la feuille qui contient la liste) :

'''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cible As Range, Source As Range, S As Variant, pos As Long
Set Cible = Range("B1") 'à adapter
If Intersect(Cible, Target) Is Nothing Or IsEmpty(Range("J1")) Then Exit Sub
Set Source = Range("J1:J" & Range("J1").End(xlDown).Row) 'idem
If Cible = Target Then
S = Cible.Value
pos = Application.Match(S, Source, 0)
Source.Range("A" & pos).ClearContents
Source.Sort Source.Range("A1")
With Cible.Validation
.Delete
.Add xlValidateList, xlValidAlertStop, , _
"=$J$1:$J$" & CStr(Range("J1").End(xlDown).Row)
End With
End If
End Sub
'''''''''''''''''''''''''''''
----------
Ange Ounis
----------

bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante et je
voudrais que le nom selectionne disparaisse de la plage d'origine afin qu'il
n'apparaisse plus afin de ne pas pouvoir saisir deux fois le meme nom
comment puis-je faire ?
merci d'avance


Avatar
Ange Ounis
Bon, je n'ai pas recopié la bonne procédure :(
La voici (la liste est ici sur la feuille dont le codename est Feuil1, à adapter
en fonction de tes données) :

'''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cible As Range, Source As Range, S As Variant, pos As Long
Set Cible = Range("B1") 'à adapter
If Intersect(Cible, Target) Is Nothing Or IsEmpty(Feuil1.Range("J1")) Then
Exit Sub
Set Source = Feuil1.Range("J1:J" & Range("J1").End(xlDown).Row) 'idem
If Cible = Target Then
S = Cible.Value
pos = Application.Match(S, Source, 0)
Source.Range("A" & pos).ClearContents
Source.Sort Source.Range("A1")
With Cible.Validation
.Delete
.Add xlValidateList, xlValidAlertStop, , _
"=$J$1:$J$" & CStr(Feuil1.Range("J1").End(xlDown).Row)
End With
End If
End Sub
'''''''''''''''''''''''''''''

----------
Ange Ounis
----------

Essaye cette procédure, à recopier dans le module de la feuille qui
contient la plage de cellules avec liste de validation (la liste
elle-même est supposée être dans un coin de la même feuille -> si ce
n'est pas le cas, remplacer 'Feuil1' par le codename de la feuille qui
contient la liste) :

'''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cible As Range, Source As Range, S As Variant, pos As Long
Set Cible = Range("B1") 'à adapter
If Intersect(Cible, Target) Is Nothing Or IsEmpty(Range("J1")) Then
Exit Sub
Set Source = Range("J1:J" & Range("J1").End(xlDown).Row) 'idem
If Cible = Target Then
S = Cible.Value
pos = Application.Match(S, Source, 0)
Source.Range("A" & pos).ClearContents
Source.Sort Source.Range("A1")
With Cible.Validation
.Delete
.Add xlValidateList, xlValidAlertStop, , _
"=$J$1:$J$" & CStr(Range("J1").End(xlDown).Row)
End With
End If
End Sub
'''''''''''''''''''''''''''''
----------
Ange Ounis
----------

bonjour,

j'utilise dans 1 plage de cellules 1 validation par liste deroulante
et je voudrais que le nom selectionne disparaisse de la plage
d'origine afin qu'il n'apparaisse plus afin de ne pas pouvoir saisir
deux fois le meme nom
comment puis-je faire ?
merci d'avance