[vba,excel2010] Valeur dans listform

kamuidragon Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 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

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
kamuidragon Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
kamuidragon Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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

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

Posez votre question
kamuidragon Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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