[vba,excel2010] Valeur dans listform

kamuidragon Messages postés 4 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis un peu perdu, j'essaye en vain depuis hier d'afficher les lignes sélectionné de ma listbox sur une cellule Excel sans arriver à un quelconque résultat(je suis sous userform)... Si quelqu'un veut bien m'aider.

Private Sub ListBox1_Click()
Dim test as string
for i = 0 to 5
if listbox1.selected(i) = true then text=text &";"&listbox1.list(i)
next i

sheets ("feuill3").range("i1")=mid$(text,3,len(text)

End sub

6 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    l'evenement click (entre-autres) ne marche pas sur une listebox multiselect, il l'evenement d'un autre controle ou vous mettrez votre code.

    Bonne suite
    0
  2. kamuidragon Messages postés 4 Statut Membre
     
    Rien à faire ce code fonctionne nul part...

    Du coup j'en ai refais un autre qui fonctionne partiellement.

    Dim lItem As Long

    For lItem = 0 To ListBox1.ListCount - 1

    If ListBox1.Selected(lItem) = True Then

    Sheet2.Range("A65536").End(xlUp)(2, 1) = ListBox1.List(lItem)

    ListBox1.Selected(lItem) = False
    End If

    Next

    End Sub

    Ici en Colonne A j'ai bien les réponses qui apparaissent dans les premières lignes. Mais je n'arrive pas à préciser que les réponses apparaissent en Colonne I ligne 24 par exemple.
    Il me manque qqchose... Un coup de main, si une âme généreuse se penche ici ;).
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Sub test()
        Dim lItem As Long
    
        For lItem = 0 To ListBox1.ListCount - 1
    
            If ListBox1.Selected(lItem) = True Then
                'derniere cellule non vide colonne I
                derlig = Range("i" & Rows.Count).End(xlUp).Row
                'test si debut de liste
                If derlig < 24 Then
                    derlig = 24
                Else
                    derlig = derlig + 1
                End If
                'ecriture a partir de I24 et apres
                Worksheets("feuil2").Range("A65536").End(xlUp)(derlig, 9) = ListBox1.List(lItem)
                ListBox1.Selected(lItem) = False
            End If
    
        Next lItem
    End Sub


    Bon courage
    0
  4. kamuidragon Messages postés 4 Statut Membre
     
    J'ai testé, ça ne fonctionne pas très bien. Je n'ai plus qu'une seule réponse qui apparait alors que ma listbox est en Multiselect.

    Ensuite l'instruction suivante:
    Worksheets("feuil2").Range("A65536").End(xlUp)(derlig, 9) = ListBox1.List(lItem)

    C'est le 9 qui indique dans quelle colonne va attérir mon résultat et non le "i" de derlig.

    Private Sub CommandButton4_Click()
    Dim lItem As Long

    For lItem = 0 To ListBox1.ListCount - 1

    If ListBox1.Selected(lItem) = True Then
    'derniere cellule non vide colonne G
    derlig = Range("C" & Rows.Count).End(xlUp).Row
    'test si debut de liste
    If derlig < 27 Then
    derlig = 27
    Else
    derlig = derlig + 1
    End If
    'ecriture a partir de c27 et apres
    Worksheets("Réponses sondages").Range("A65536").End(xlUp)(derlig, 3) = ListBox1.List(lItem)
    ListBox1.Selected(lItem) = False
    End If

    Next lItem
    End Sub

    J'ai testé et quelque soit la lettre que l'on met dans derlig, ça ne change rien. Et les résultats m'apparaissent dans la cellule 74. Là j'avoue, je ne comprends pas pk.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kamuidragon Messages postés 4 Statut Membre
     
    Par contre toutes les réponses sélectionnées apparaissent bien je corrige, mais avec un écart de 47 cellules entre chaque réponse. Là je comprends pas du tout.
    0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    C'est le 9 qui indique dans quelle colonne va attérir mon résultat et non le "i" de derlig. i est la neuvieme colonne (A-1,B-2 etc.......)

    'ecriture a partir de c27 et apres faudrait savoir si c'est en colonne I ou C que vous voulez ecrire (dans votre question de depart c'etait I, apres A et enfin C)

    résultats m'apparaissent dans la cellule 74 il faut soit definir la plage ou ecrire vos choix, soit ne rien ecrire dans cette colonne en dessous des ecriture de choix possible.

    A+
    0