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

Generer des menus déroulants dans des cellules et recuperer le choix

10 réponses
Avatar
Pierre F.
Bonjour !

Je souhaite, =E0 partir d'un nombre entier X choisi par un utilisateur=20
g=E9n=E9rer des listes d=E9roulantes comportant les nombres entier de 1 =E0=
X=20
dans des cellules pr=E9cises et r=E9cup=E9rer le nombre choisi dans la li=
ste=20
dans une cellule.

Est-ce possible ?

Voir ci-joint:

http://cjoint.com/?dFoyv7Ucbl


Je souhaite cr=E9er les listes d=E9roulantes en D4, F4, H4, J4, L4 et N4 =

comportant les nombre entiers de 1 =E0 celui entr=E9 dans A4.

Le choix fait devra s'inscrire dans les cellules D4, F4...

Merci de vos lumi=E8res, car je s=E8che compl=E8tement.

Cordialement,
Pierre F.

10 réponses

Avatar
JB
Bonjour,

http://cjoint.com/?dFqg3Jz8jR

En P1: 1
En P2:=SI(P1<$A$4;P1+1;"") puis recopie


En D4:
Données/Validation/liste
ÞCALER($P$1;;;NB.SI($P$1:$P$50;">0"))

JB

On 31 mar, 14:26, "Pierre F." wrote:
Bonjour !

Je souhaite, à partir d'un nombre entier X choisi par un utilisateur
générer des listes déroulantes comportant les nombres entier de 1 à X
dans des cellules précises et récupérer le nombre choisi dans la li ste
dans une cellule.

Est-ce possible ?

Voir ci-joint:

http://cjoint.com/?dFoyv7Ucbl

Je souhaite créer les listes déroulantes en D4, F4, H4, J4, L4 et N4
comportant les nombre entiers de 1 à celui entré dans A4.

Le choix fait devra s'inscrire dans les cellules D4, F4...

Merci de vos lumières, car je sèche complètement.

Cordialement,
Pierre F.


Avatar
LSteph
Bonjour,
Si j'ai bien compris:

'''''*****dans code feuille*****
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, i As Long, c As Range, myTxt As String
Set isect = Intersect(Target, [a1])
If Not isect Is Nothing And IsNumeric([a1]) Then
For i = 1 To [a1]
If i = 1 Then
myTxt = 1 & ","
Else
myTxt = myTxt & i & ","
End If
Next

For Each c In Rows(1).Cells
Select Case c.Column
Case 4, 6, 8, 10, 12, 14
With c.Validation
.Delete
If Not IsEmpty([a1]) Then
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=myTxt
End If
End With
End Select
Next
End If
End Sub

'Cordialement.

'lSteph

Bonjour !

Je souhaite, à partir d'un nombre entier X choisi par un utilisateur
générer des listes déroulantes comportant les nombres entier de 1 à X
dans des cellules précises et récupérer le nombre choisi dans la liste
dans une cellule.

Est-ce possible ?

Voir ci-joint:

http://cjoint.com/?dFoyv7Ucbl


Je souhaite créer les listes déroulantes en D4, F4, H4, J4, L4 et N4
comportant les nombre entiers de 1 à celui entré dans A4.

Le choix fait devra s'inscrire dans les cellules D4, F4...

Merci de vos lumières, car je sèche complètement.

Cordialement,
Pierre F.


Avatar
Pierre F.
Bonjour,
http://cjoint.com/?dFqg3Jz8jR

En P1: 1
En P2:=SI(P1<$A$4;P1+1;"") puis recopie

En D4:
Données/Validation/liste
ÞCALER($P$1;;;NB.SI($P$1:$P$50;">0"))


Merci JB !
J'avais aussi créé une liste dans une colonne et tenté de "l'export er"
mais c'est là que je "calais" :-)

C'est exactement ce que je souhaitais :-)

Petite question: quel est le sens des 3 point-virgules successifs dans
la formule en D4?

Cordialement,
Pierre F.

Avatar
JB
-La fonction
Decaler(référence;decalNbLignes;decalNbColonnes;Hauteur;largeur)
permet de définir un champ.
Elle aurait pu s'écrire ÞCALER($P$1;0;0;NB.SI($P$1:$P$50;">0"))
Sur cet exemple,on utilise seulement la hauteur du champ.

http://boisgontierj.free.fr/fichiers/jb-Decaler.xls

-Si la liste se trouve sur un autre onglet, créer un nom de champ
dynamique:

Maliste
ÞCALER($P$1;0;0;NB.SI($P$1:$P$50;">0"))

et dans Données/validation/Liste, spécifier =Maliste

JB


On 31 mar, 16:36, "Pierre F." wrote:

Bonjour,
http://cjoint.com/?dFqg3Jz8jR

En P1: 1
En P2:=SI(P1<$A$4;P1+1;"") puis recopie
En D4:
Données/Validation/liste
ÞCALER($P$1;;;NB.SI($P$1:$P$50;">0"))


Merci JB !
J'avais aussi créé une liste dans une colonne et tenté de "l'export er"
mais c'est là que je "calais" :-)

C'est exactement ce que je souhaitais :-)

Petite question: quel est le sens des 3 point-virgules successifs dans
la formule en D4?

Cordialement,
Pierre F.



Avatar
Pierre F.
Bonjour,
Si j'ai bien compris:

'''''*****dans code feuille*****
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, i As Long, c As Range, myTxt As String
Set isect = Intersect(Target, [a1])
If Not isect Is Nothing And IsNumeric([a1]) Then
For i = 1 To [a1]
If i = 1 Then
myTxt = 1 & ","
Else
myTxt = myTxt & i & ","
End If
Next

For Each c In Rows(1).Cells
Select Case c.Column
Case 4, 6, 8, 10, 12, 14
With c.Validation
.Delete
If Not IsEmpty([a1]) Then
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=myTxt
End If
End With
End Select
Next
End If
End Sub


Merci;

Je suis pas sûr que j'aie tout bien compris :-)

J'ai copié/collé sur le code de l'onglet la procédure que tu m'as d onnée;
Comme rien ne se passait, j'ai changé partout le [a1] par [a4] puisque
c'est là que je définis le nombre maximum lignes de la liste déroul ante
que je souhaite créer...

Et rien ne se passe non plus...

Que faire ?

Merci

Cordialement,
Pierre F.

Avatar
LSteph
Pour voir ce qui se passe il faut aller ensuite
sur les cellules que tu as indiquées.
Elles contiennent la validation souhaitée en fonction de A1 (maxi)

;o)

Cordialement.

lSteph

Bonjour,
Si j'ai bien compris:

'''''*****dans code feuille*****
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, i As Long, c As Range, myTxt As String
Set isect = Intersect(Target, [a1])
If Not isect Is Nothing And IsNumeric([a1]) Then
For i = 1 To [a1]
If i = 1 Then
myTxt = 1 & ","
Else
myTxt = myTxt & i & ","
End If
Next

For Each c In Rows(1).Cells
Select Case c.Column
Case 4, 6, 8, 10, 12, 14
With c.Validation
.Delete
If Not IsEmpty([a1]) Then
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=myTxt
End If
End With
End Select
Next
End If
End Sub


Merci;

Je suis pas sûr que j'aie tout bien compris :-)

J'ai copié/collé sur le code de l'onglet la procédure que tu m'as donnée;
Comme rien ne se passait, j'ai changé partout le [a1] par [a4] puisque
c'est là que je définis le nombre maximum lignes de la liste déroulante
que je souhaite créer...

Et rien ne se passe non plus...

Que faire ?

Merci

Cordialement,
Pierre F.






Avatar
Pierre F.
Pour voir ce qui se passe il faut aller ensuite
sur les cellules que tu as indiquées.
Elles contiennent la validation souhaitée en fonction de A1 (maxi)


C'est ce que j'ai fait... mais rien ne se passe justement... :-((

Cordialement,
Pierre F.

Avatar
LSteph
voici:

http://cjoint.com/?dFvCVsvbHQ

Cordialement.

lSteph


Pour voir ce qui se passe il faut aller ensuite
sur les cellules que tu as indiquées.
Elles contiennent la validation souhaitée en fonction de A1 (maxi)


C'est ce que j'ai fait... mais rien ne se passe justement... :-((

Cordialement,
Pierre F.





Avatar
Pierre F.
voici:

http://cjoint.com/?dFvCVsvbHQ


Yessss!!

Effectivement... mais je cherchais sur la mauvaise ligne!! comme j'avais
entré mon nombre en A4... j'attendais des effets en D4, F4... alors
qu'ils étaient en D1...

C'est tout bon maintenant, j'ai trouvé comment tout déplacer sur la l igne 4.

Super.

Merci.

Cordialement,
Pierre F.

Avatar
LSteph
Oui! remplacer le 1 par 4
là:
For Each c In Rows(4).Cells

Bonne soirée.

voici:

http://cjoint.com/?dFvCVsvbHQ


Yessss!!

Effectivement... mais je cherchais sur la mauvaise ligne!! comme j'avais
entré mon nombre en A4... j'attendais des effets en D4, F4... alors
qu'ils étaient en D1...

C'est tout bon maintenant, j'ai trouvé comment tout déplacer sur la
ligne 4.

Super.

Merci.

Cordialement,
Pierre F.