Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validation de donnée, trie automatique dans la liste

7 réponses
Avatar
jdg74
Bonjour à tous,

J'ai une liste déroulante qui est une validation de données liste, cette
liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
autre feuille
Ce que je voudrais, c'est que quand je tape a dans la cellule, la liste
s'ouvre automatiquement avec tous les noms commençant par a

Merci d'avance

7 réponses

Avatar
AV
C'est pas possible avec données/validation !

AV

"jdg74" a écrit dans le message news:

Bonjour à tous,

J'ai une liste déroulante qui est une validation de données liste, cette
liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
autre feuille
Ce que je voudrais, c'est que quand je tape a dans la cellule, la liste
s'ouvre automatiquement avec tous les noms commençant par a

Merci d'avance




Avatar
Philippe.R
Bonjour nico,
Mettre la liste dans une autre feuille est possible à condition de nommer la plage qui la contient et de
faire référence à ce nom : =maliste par exemple.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"nico" a écrit dans le message de
news:3f1a453c$0$8078$
Salut,
c'est bizarre, j'ai essayé cette fonction il y a quelques temps et je n'ai
pas reussi a mettre la liste dans une autre feuille que celle ou se trouve
le menu deroulant, si j'indique une autre feuille pour la liste, excel
m'indique qu'il ne peut pas aller chercher la liste sur une autre feuille.
j'ai excel 97 pack office PME


tu as quel excel jdg74 ?

merci

--
pour me repondre par mail :
http://haltspam.free.fr/index.php?pseudo=nicolas258
AV a écrit dans le message :

| C'est pas possible avec données/validation !
|
| AV
|
| "jdg74" a écrit dans le message
news:
|
| > Bonjour à tous,
| >
| > J'ai une liste déroulante qui est une validation de données liste, cette
| > liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
| > autre feuille
| > Ce que je voudrais, c'est que quand je tape a dans la cellule, la liste
| > s'ouvre automatiquement avec tous les noms commençant par a
| >
| > Merci d'avance
| >
| >
|
|




Avatar
isabelle
bonjour Nico,

pour se faire il faut nommer la liste, tu pourra utiliser ce nom pour la
validation
à la case Source: =Maliste

isabelle


Salut,
c'est bizarre, j'ai essayé cette fonction il y a quelques temps et je n'ai
pas reussi a mettre la liste dans une autre feuille que celle ou se tro uve
le menu deroulant, si j'indique une autre feuille pour la liste, excel
m'indique qu'il ne peut pas aller chercher la liste sur une autre feuil le.
j'ai excel 97 pack office PME

tu as quel excel jdg74 ?

merci

--
pour me repondre par mail :
http://haltspam.free.fr/index.php?pseudo=nicolas258
AV a écrit dans le message :

| C'est pas possible avec données/validation !
|
| AV
|
| "jdg74" a écrit dans le messa ge
news:
|
| > Bonjour à tous,
| >
| > J'ai une liste déroulante qui est une validation de données lis te, cette
| > liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
| > autre feuille
| > Ce que je voudrais, c'est que quand je tape a dans la cellule, la l iste
| > s'ouvre automatiquement avec tous les noms commençant par a
| >
| > Merci d'avance
| >
| >
|
|


Avatar
jdg74
Ou bien est il possible que quand je tape les 2 ou 3 première lettres d'un
nom, que la liste se positionne directement sur le nom qui commence par ces
lettres

"AV" a écrit dans le message de
news:
C'est pas possible avec données/validation !

AV

"jdg74" a écrit dans le message
news:


Bonjour à tous,

J'ai une liste déroulante qui est une validation de données liste, cette
liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
autre feuille
Ce que je voudrais, c'est que quand je tape a dans la cellule, la liste
s'ouvre automatiquement avec tous les noms commençant par a

Merci d'avance








Avatar
Michel Pierron
Bonjour jdg74;
Supposons par exemple, que la liste de sélection soit nommée MyList et que
la cellule de données validation soit en E14

Dans le module de la feuille où est située la cellule de données validation:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call KeyOff
If Not Target = [E14] Then Exit Sub
Call KeyOn
End Sub

Dans un module standard:
Sub KeyOn()
Dim i As Integer
For i = 65 To 90
Application.OnKey "{" & i & "}", "'ValiData """ & i & """'"
Next
End Sub

Sub KeyOff()
Dim i As Integer
For i = 64 To 90
Application.OnKey "{" & i & "}"
Next
End Sub

Sub ValiData(ByVal KeyCode As Long)
If Not TypeOf Selection Is Range Then Exit Sub
Dim sText As String, sList As String
sText = Selection.Value & Chr(KeyCode)
sList = MakeArray(sText)
Selection.Value = sText
If sList = "False" Then
Selection.Validation.Delete
Else
With Selection.Validation
.Delete
.Add 3, 1, 1, Formula1:=sList
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
End With
End If
End Sub

Private Function MakeArray(ByVal iChr As String) As String
Dim x As Variant, i As Integer
x = [MyList].Value
For i = LBound(x) To UBound(x)
If InStr(1, x(i, 1), iChr, vbTextCompare) = 1 Then
MakeArray = MakeArray & x(i, 1) & Chr(&H2C)
End If
Next
If MakeArray = "" Then
MakeArray = "False"
Else
MakeArray = Left(MakeArray, Len(MakeArray) - 1)
End If
End Function

Lorsque ta cellule active est E14, si tu tapes une ou plusieurs lettres, la
liste de validation sera restreinte aux valeurs commençant par ces lettres.
A toi d'adapter cette macro en fonction du nom choisi pour ta liste de
données et la cellule à laquelle tu affectes la validation de données.

MP

"jdg74" a écrit dans le message de
news:
Bonjour à tous,

J'ai une liste déroulante qui est une validation de données liste, cette
liste est une liste de nom que j'ai trié pas ordre alphabétique dans une
autre feuille
Ce que je voudrais, c'est que quand je tape a dans la cellule, la liste
s'ouvre automatiquement avec tous les noms commençant par a

Merci d'avance




Avatar
Michel Pierron
Bonjour jdg74;
Est-ce que Nom est le nom que tu as défini pour ta plage de données ?
MP

"jdg74" a écrit dans le message de
news:
Salut Michel,

J'ai essayé ton code mais cela ne marche pas?
La seule modification que j'ai faite c'est de changer MyList par Nom
Si tu peux m'aider merci

"Michel Pierron" a écrit dans le message de
news:
Bonjour jdg74;
Supposons par exemple, que la liste de sélection soit nommée MyList et
que


la cellule de données validation soit en E14

Dans le module de la feuille où est située la cellule de données
validation:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call KeyOff
If Not Target = [E14] Then Exit Sub
Call KeyOn
End Sub

Dans un module standard:
Sub KeyOn()
Dim i As Integer
For i = 65 To 90
Application.OnKey "{" & i & "}", "'ValiData """ & i & """'"
Next
End Sub

Sub KeyOff()
Dim i As Integer
For i = 64 To 90
Application.OnKey "{" & i & "}"
Next
End Sub

Sub ValiData(ByVal KeyCode As Long)
If Not TypeOf Selection Is Range Then Exit Sub
Dim sText As String, sList As String
sText = Selection.Value & Chr(KeyCode)
sList = MakeArray(sText)
Selection.Value = sText
If sList = "False" Then
Selection.Validation.Delete
Else
With Selection.Validation
.Delete
.Add 3, 1, 1, Formula1:=sList
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
End With
End If
End Sub

Private Function MakeArray(ByVal iChr As String) As String
Dim x As Variant, i As Integer
x = [MyList].Value
For i = LBound(x) To UBound(x)
If InStr(1, x(i, 1), iChr, vbTextCompare) = 1 Then
MakeArray = MakeArray & x(i, 1) & Chr(&H2C)
End If
Next
If MakeArray = "" Then
MakeArray = "False"
Else
MakeArray = Left(MakeArray, Len(MakeArray) - 1)
End If
End Function

Lorsque ta cellule active est E14, si tu tapes une ou plusieurs lettres,
la

liste de validation sera restreinte aux valeurs commençant par ces
lettres.

A toi d'adapter cette macro en fonction du nom choisi pour ta liste de
données et la cellule à laquelle tu affectes la validation de données.

MP

"jdg74" a écrit dans le message de
news:
Bonjour à tous,

J'ai une liste déroulante qui est une validation de données liste,
cette



liste est une liste de nom que j'ai trié pas ordre alphabétique dans
une



autre feuille
Ce que je voudrais, c'est que quand je tape a dans la cellule, la
liste



s'ouvre automatiquement avec tous les noms commençant par a

Merci d'avance












Avatar
isabelle
:-( la liste n'est pas très longue à date, je crois qu'il serait mieu x
de retarder ça au le mois de septembre, qu'est ce que t'en dit ?

isabelle


Salut Isabelle,
en parlant de liste...
tu as commencé ta liste d'invité(e)s ?

Ch.

à la case Source: =Maliste

isabelle