Liste déroulante VBA

Résolu/Fermé
savlynn Messages postés 3 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 2 novembre 2016 - 31 oct. 2016 à 15:04
savlynn Messages postés 3 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 2 novembre 2016 - 2 nov. 2016 à 13:38
Bonjour à tous ,

J'ai créé un fichier et souhaite faire une liste déroulante à choix multiple sous VBA.

Cependant ne connaissant pas beaucoup cette implémentation , j'ai besoin de conseils.

En effet j'ai réussi à faire la liste pour la 1ere ligne cependant à chaque fois que je veux l'étendre il me met les mêmes résultats de la 1ère ligne. Or ce que je veux c'est que ces résultats ne soient pas indépendants de cette fameuse première ligne.

voici les codes

Pour la liste déroulante et le bouton commande:

Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & "
End If
Next i
With Sheets("Plan d'action")
.Range("J2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
.Range("K2").Activate

End With
UserForm1.Hide
Unload UserForm1
End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
With Sheets("Données")
Derlig = .Cells(65536, 6).End(xlUp).Row
For i = 2 To Derlig
ListBox1.AddItem .Cells(i, 6).Value
Next i
End With
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i

End Sub


Pour afficher la liste déroulante:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$J$2" Then
Target.Value = ""
Load UserForm1
UserForm1.Show
End If
End sub


Je vous remercie d'avance pour votre aide

cordialement

5 réponses

PapyLuc51 Messages postés 4295 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 18 avril 2024 1 402
1 nov. 2016 à 09:42
Bonjour,

Je ne connais pas assez le VBA pour te renseigner mais tu peux peut-être trouver des réponses sur
ce lien


Cordialement
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
2 nov. 2016 à 11:08
Bonjour savlynn,

Cela me semble plus clair en effet :D

Voici une proposition avec une variable publique nommée "Cible" qui représente la cellule sur laquelle l'opérateur effectue le double-clic.
J'ai limité la plage active à J2:J100. A toi de l'adapter si besoin.

https://www.cjoint.com/c/FKckg6xQQjT

A+
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
1 nov. 2016 à 10:53
Bonjour,

Il faudrait que tu donnes quelques éclaircissements sur ta demande :

"En effet j'ai réussi à faire la liste pour la 1ere ligne cependant à chaque fois que je veux l'étendre il me met les mêmes résultats de la 1ère ligne. Or ce que je veux c'est que ces résultats ne soient pas indépendants de cette fameuse première ligne."

Je n'ai rien compris !
La valeur à retourner est systématiquement placée dans 'Plan d'action'!J2 avec la ligne de code :
With Sheets("Plan d'action")
.Range("J2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
End With

Est-ce que tu souhaites qu'à chaque sollicitation du bouton de commande les valeurs à ajouter viennent se placer les unes en dessous des autres (J3, J4, etc) ?

A+
0
savlynn Messages postés 3 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 2 novembre 2016
2 nov. 2016 à 08:45
Bonjour PapyLuc51, Gyrus

Tout d'abord je vous remercie de vos réponses rapides.

Je vais regarder le lien et voir si je trouve la solution.

Concernant ta question Gyrus, en fait je veux que quand je sélectionne la cellule (J2) , une liste déroulante apparaît et une fois les critères validés s'affiche sur cette même cellule (J2) .

Ensuite quand je sélectionne la cellule d'en dessous (J3) , la même liste déroulante apparaît et une fois les critères validés s'affiche sur J3 et ainsi de suite.

Sachant que les résultat en J2 et J3 peuvent être différent.

J'espère que ma demande est plus claire

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
savlynn Messages postés 3 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 2 novembre 2016
2 nov. 2016 à 13:38
Bonjour Gyrus,

Ta proposition correspond parfaitement à ce que je veux, j'ai recopié tes codes dans mon fichier et tout fonctionne comme je le souhaite.

Plusieurs jours que je bloquai la dessus, je vais pouvoir passer à autre chose maintenant grâce a toi.

J'ai plus qu'à ajouter de la couleur pour rendre ca un peu plus gai.

Je te remercie encore pour ta réponse rapide et claire

Cordialement

Savlynn
0