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

Le
Pierre F.
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4316151
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."
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.


LSteph
Le #4316141
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.


Pierre F.
Le #4316121
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.

JB
Le #4316091
-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."

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.



Pierre F.
Le #4316011
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.

LSteph
Le #4315911
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.






Pierre F.
Le #4315841
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.

LSteph
Le #4315821
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.





Pierre F.
Le #4315811
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.

LSteph
Le #4315801
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.



Publicité
Poster une réponse
Anonyme