OVH Cloud OVH Cloud

Trier dans un contrôle

1 réponse
Avatar
erm1
Bonjour , j'ai ajouter differents mots dans un contrôle de liste déroulante.
Je voudrais savoir comment je peux faire pour que ces mots soit classés par
ordre alphabetique pour des lettres, et par ordre numerologique pour les
chiffres ou par ordre alphabetique et numerologique suivant les valeurs de
mon contrôle .Voici le code que j'ai mis dans le contrôle de liste
déroulante Opération qui à comme valeurs des mots .

Merci de votre aide trés précieuse


Private Sub Opération_NotInList(NewData As String, Response As Integer)
Dim ctl As Control


Set ctl = Me!Opération

If MsgBox("Voulez-vous ajouter une nouvelle valeur dans la liste
Opération?", _
vbOK + vbQuestion + vbDefaultButton2) = vbOK Then

Response = acDataErrAdded

ctl.RowSource = ctl.RowSource & ";" & NewData
Else

Response = acDataErrContinue
ctl.Undo
End If
End Sub

1 réponse

Avatar
pgz
Ponjour (re),
Ge crois bien qu'il faut se faire son classement soit même quand on a une
liste de valeurs. Et un Sub Ajoute, un! qui classe par ordre alphabétique.

Sub Ajoute(DataToPush as string) 'la valeur à ajouter est dans DataToPush
str = Me.Opération.RowSource
if str = "" then Me.Opération.RowSource = DataToPush : exit sub 'liste vide
i = 1
Ajoute_Etq1:
j = instr(i,str,";")
if j=0 Then j = len(str)
if i= j Then Me.Opération.RowSource = str & ";" & DataToPush 'valeur en bout
de liste
k=strcomp(mid(str,i,j-i),DataToPush)
Select case k
case 0
exit sub ' la valeur y est déjà
case 1
i = j : GoTo Ajoute_Etq1
case -1
Me.Opération.RowSource = left(str,i-1) & Iif(i>1,";","") & DataToPush
& iif(i=1,";","") & Mid(str,i)
end select
end sub

A peu-près... il faudra mettre au point.
Il faut bien sûr que la liste initiale soit vide ou déjà rangée par ordre
Alpha.

Zalut, et bonne chance,
pgz



Bonjour , j'ai ajouter differents mots dans un contrôle de liste déroulante.
Je voudrais savoir comment je peux faire pour que ces mots soit classés par
ordre alphabetique pour des lettres, et par ordre numerologique pour les
chiffres ou par ordre alphabetique et numerologique suivant les valeurs de
mon contrôle .Voici le code que j'ai mis dans le contrôle de liste
déroulante Opération qui à comme valeurs des mots .

Merci de votre aide trés précieuse


Private Sub Opération_NotInList(NewData As String, Response As Integer)
Dim ctl As Control


Set ctl = Me!Opération

If MsgBox("Voulez-vous ajouter une nouvelle valeur dans la liste
Opération?", _
vbOK + vbQuestion + vbDefaultButton2) = vbOK Then

Response = acDataErrAdded

ctl.RowSource = ctl.RowSource & ";" & NewData
Else

Response = acDataErrContinue
ctl.Undo
End If
End Sub