Liste de choix à résultat multiples

Boby71C

XLDnaute Impliqué
Bonjour à tous

Je désir saisir en E4 plusieurs noms choisis dans la liste en I3 à I18.
et pouvoir afficher dans cette même cellule plusieurs résultats du choix.
Merci de votre aide
A+
Robert [file name=liste_20050727192236.zip size=1535]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/liste_20050727192236.zip[/file]
 

Pièces jointes

  • liste_20050727192236.zip
    1.5 KB · Affichages: 24

Dugenou

XLDnaute Barbatruc
Salut Robert,

Afficher la liste c'est facile avec données/validation.

Par contre permettre de choisir plusieur items : j'ai jamais vu

Désolé

[file name=listebobby.zip size=1798]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/listebobby.zip[/file]
 

Pièces jointes

  • listebobby.zip
    1.8 KB · Affichages: 18

Hellboy

XLDnaute Accro
Bonjour a tous

Si on veux faire un peu de programmation, ça ce fait. En insérant ce code ds le mode de la la feuille approprié.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = '$E$4' Then
 
'Crer un userfor avec un listbox qui contien la liste
  'Userform.show
  'Inscrire les données dans E4
  Target.Offset(1, 0).Select
End If
End Sub

a+
 

Boby71C

XLDnaute Impliqué
Bonjour Helboy

Merci beaucoup pour ta réponse. Je ne comprends pas tout car je ne suis pas encore trés bon en Macro. Je vais faire une formation en septembre. Si tu pouvais me faire un brin d'éssai sur mon fichier, il serait le bienvenu.

Merci beaucoup
A+
Robert : :
 

Hellboy

XLDnaute Accro
Bonjour Robert

Bon voilà ce que ça donne en code:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strChoix As String
Dim intItem As Integer
With Target
   
If .Address = '$E$4' Then
        .Value = Empty
        UserForm1.Show
       
With UserForm1.ListBox1
             
For intItem = 0 To .ListCount - 1
                 
If .Selected(intItem) = True Then
                    strChoix = strChoix & .List(intItem) & ', '
                 
End If
             
Next intItem
              Unload UserForm1
       
End With
        .Value = Mid(strChoix, 1, Len(strChoix) - 2)
      .Offset(1, 0).Select
   
End If
End With
End Sub





Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub



Private Sub UserForm_Initialize()
Dim vrtChoix As Variant
With UserForm1.ListBox1
   
For Each vrtChoix In Sheets('Choix').Range(Cells(3, 9), Cells(Cells(65536, 9).End(xlUp).Row, 9))
              .AddItem vrtChoix
   
Next vrtChoix
End With
End Sub



En passant, je ne savait pas comment tu voulais avoir tes donner ds la cellules E4, alors je les ai sépareés avec la virgule.

Voici le fichier

[file name=liste_20050728210732.zip size=10949]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/liste_20050728210732.zip[/file]


A +

p.s. Je n'ai pas commenté le code, excuse moi. Si tu as besoin, il me fera plaisir de te donner les explications complémentaire a ce que tu souhaiterais savoir.

Message édité par: Hellboy, à: 28/07/2005 21:09
 

Pièces jointes

  • liste_20050728210732.zip
    10.7 KB · Affichages: 52

Boby71C

XLDnaute Impliqué
Re Bonsoir
Je n'avais pas lu complètement ton message. Bien sûr que je serais interressé par les commentaires du code. Comme je l'ai dit, je ne suis pas un grand connaisseur et je n'ai pas compris comment tu selectionne la liste et comment tu a créé les carrés à cocher.
J'ai rajouté un petit texte au bas de la boite de dialogue pour indiquer aux utilisateurs d'appuyer sur Ctrl pour des multiples selections.
Se soir, j'avais un peux de temps et j'ai commencé à me former avec EXCEL 2003 macros et programmation VBA de Renaud Guillaume. C'est passionnant je vais y aller doucement en attendant ma formation officielle qui devrait débuter en septembre ou octobre

Merci encore
A+
Robert
 

Hellboy

XLDnaute Accro
Bonsoir Robert

Alors en voici une partie. Si il t'en manque tu me le dis.

'Cette macro est de type qu'on appel évènementciel.
'Dans ce cas ci, elle s'exécute des qu'il se produit un changement ds la feuille choix
'Target est la cellule qui est présentement en cause

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strChoix As String
Dim intItem As Integer
' Le With sert a ne par renommer a chaque fois la variable Target
' C'est pour ça que tu vois .Address sans Target devant
With Target
   
' Ici je m'assure avec une condition que le traitement se fasse
    ' seulement si le Target(cellule) est E4
    If .Address = '$E$4' Then
       
'Réinitialise la cellule avec rien a l'intérieur
        .Value = Empty
        UserForm1.Show
       
With UserForm1.ListBox1
             
' Ici on fait le tour de tout les éléments du ListBox
              ' afin de connaitre les choix de l'utilisateur
              For intItem = 0 To .ListCount - 1
                 
If .Selected(intItem) = True Then
                   
' Donc avec cette condition on a peu déterminer a ce point
                    ' que cet élément est un des choix de l'utilisateur et va être
                    ' donc insérer ds la variable
                    strChoix = strChoix & .List(intItem) & ', '
                 
End If
             
Next intItem
              Unload UserForm1
       
End With
       
' Ici Target(cellule).value on y insère le résultat de la variable strChoix qui
        ' Compose tout les choix de l'utilisateur et qui on été séparé par une virgule et un espace
        ' Mais il y a un traitement additionnel qui est fait soit de soutirer la vigule et le dernier espace
        ' qui ne serve pas parce qu'il n'y a plus de nom après. C'est fait avec la combinaison de Mid et Len
        .Value = Mid(strChoix, 1, Len(strChoix) - 2)
       
'Et finalement, je remet le focus sur une autre cellule que E4 pour repermettre l'action de
        ' clicker sur E4
      .Offset(1, 0).Select
   
End If
End With
End Sub
 

Boby71C

XLDnaute Impliqué
Bonsoir Philippe
Merci beaucoup pour l'aide que tu m'as apporté.
Chose bizare, mon nom de famille est Philippe !!! :lol:
J'ai lu ton profil et je constate que nous avons les mêmes sentiments dans le travail. Domage que je n'ai pas tes connaissances.

Merci encore et A+
Robert
 
S

Stephan

Guest
Re:Liste de choix à résultat multiples - bug

Bonjour,

Merci pour ces infos.

Débutant, j'essaye également de créer une liste à choix multiple mais j'ai un message d'erreur lorsque je clique dans la cellule :
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet

Si je débugge, cela plante sur le UserForm1.Show.

Pouvez-vous m'aider ?

Merci.
 

Discussions similaires

Réponses
3
Affichages
1 K

Statistiques des forums

Discussions
312 814
Messages
2 092 339
Membres
105 374
dernier inscrit
kjk