Liste déroulante VBA [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
-
Messages postés
3
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
2 novembre 2016
-
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

Messages postés
2899
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
29 novembre 2020
785
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
498
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
498
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+
Messages postés
3
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
2 novembre 2016

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
Messages postés
3
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
2 novembre 2016

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