• Initiateur de la discussion Initiateur de la discussion shasha
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

shasha

Guest
Bonsoir à tous,

Je vous souhaite une très bonne année 2005.

Comme c'est la première fois que je demande de l'aide, excusez moi si je ne suis pas assez claire.

J'ai créer un user form avec une liste à 4 colonnes avec option sélection multiple. Je suis bloquée au niveau de la récupération des info.

Je souhaiterai pouvoir ramener dans une même cellule:
1 - toutes les info d'une ligne sélectionnée avec un séparateur: pour l'instant j'y suis arrivée
Private Sub CmdOK_Click()
Dim s
s = CHROMATHEQUE.ListIndex
[C7] = CHROMATHEQUE.List(s, 0) & " / " & _
CHROMATHEQUE.List(s, 1) & " / " & _
CHROMATHEQUE.List(s, 2) & " / " & _
CHROMATHEQUE.List(s, 3)
Unload UserForm1

2- avoir un retour à la ligne dans la même cellule pour les autres lignes sélectionnées: j'y arrive pas il me ramène que la dernière ligne sélectionnée

J'ai essayé avec la synthaxe suivante mais cela ne marche pas
Private Sub CommandButton1_Click()
Dim i As Byte
Dim IndexSelected As String
For i = 0 To Me.CHROMATHEQUE.ListCount - 1
If Me.CHROMATHEQUE.Selected(i) = True Then
IndexSelected = IndexSelected & vbTab & "Index" & i & vbCrLf
End If
Next
MsgBox "Liste des Index Sélectionnés :" & vbCrLf & IndexSelected

Dim s
s = CHROMATHEQUE.ListIndex
[C7] = CHROMATHEQUE.List(s, 0) & " / " & _
CHROMATHEQUE.List(s, 1) & " / " & _
CHROMATHEQUE.List(s, 2) & " / " & _
CHROMATHEQUE.List(s, 3)
Unload UserForm1

Merci d'avance
shasha
 
bonsoir shasha,

j'ai modifié ton code pour qu'il renvoit toutes les lignes selectionnées.
Par contre il les renvoit à la ligne et non dans la même cellule comme tu sembles le désirer.
Je vais manger et chercher. Si tu trouves avant, fais moi un coucou.

--------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()

Dim i As Byte
Dim num As Byte
Dim Tblo()

For i = 0 To Me.CHROMATHEQUE.ListCount - 1
If Me.CHROMATHEQUE.Selected(i) = True Then
num = num + 1
ReDim Preserve Tblo(num)
Tblo(num) = i
End If
Next


Dim s
For i = 1 To num
Cells(6 + i, 3) = CHROMATHEQUE.List(Tblo(i), 0) & " / " & _
CHROMATHEQUE.List(Tblo(i), 1) & " / " & _
CHROMATHEQUE.List(Tblo(i), 2) & " / " & _
CHROMATHEQUE.List(Tblo(i), 3)
Next

Columns("C").AutoFit
Unload UserForm1

End Sub
----------------------------------------------------------------------------------

amicalement
 
shasha,

peut-être comme suit :

------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim i As Byte
Dim num As Byte
Dim Tblo()


For i = 0 To Me.CHROMATHEQUE.ListCount - 1
If Me.CHROMATHEQUE.Selected(i) = True Then
num = num + 1
ReDim Preserve Tblo(num)
Tblo(num) = i
End If
Next


Dim s
For i = 1 To num


[C7] = [C7] & CHROMATHEQUE.List(Tblo(i), 0) & " / " & _
CHROMATHEQUE.List(Tblo(i), 1) & " / " & _
CHROMATHEQUE.List(Tblo(i), 2) & " / " & _
CHROMATHEQUE.List(Tblo(i), 3) & Chr(10)
Next
Columns("c").AutoFit
Rows(7).AutoFit
Unload UserForm1

End Sub
--------------------------------------------------------------------------------------

bonne soirée
 
Bonjour,

Il faut tj faire de bonnes actions en début d'année !!

En fait j'ai encore besoin de ton aide, j'ai rajouté une liste dans mon user form.

Comment puis-je executer ton code 2 fois le but étant qu'il me renseigne 2 zones différentes avec chacune des 2 listes.

J'ai essayé cela mais cela ne marche que pour la première liste

Private Sub CommandButton1_Click()
Range("E6").Select
Selection.ClearContents
Range("E8").Select
Selection.ClearContents

Dim i As Byte
Dim num As Byte
Dim Tblo()

For i = 0 To Me.TESTSCM.ListCount - 1
If Me.TESTSCM.Selected(i) = True Then
num = num + 1
ReDim Preserve Tblo(num)
Tblo(num) = i
End If
Next

Dim s
For i = 1 To num

[E6] = [E6] & TESTSCM.List(Tblo(i), 0) & " : " & _
TESTSCM.List(Tblo(i), 1) & " - " & _
TESTSCM.List(Tblo(i), 2) & Chr(10)
Next
Columns("E").AutoFit
Rows(6).AutoFit
Rows("6:6").RowHeight = 30

Dim y As Byte
Dim num1 As Byte
Dim Tblo1()

For y = 0 To Me.TESTSST.ListCount - 1
If Me.TESTSST.Selected(i) = True Then
num1 = num1 + 1
ReDim Preserve Tblo1(num1)
Tblo1(num1) = y
End If
Next

Dim v
For y = 1 To num1

[E8] = [E8] & TESTSST.List(Tblo1(y), 0) & " : " & _
TESTSST.List(Tblo1(y), 1) & " - " & _
TESTSST.List(Tblo1(y), 2) & Chr(10)
Next
Columns("E").AutoFit
Rows(8).AutoFit
Rows("8:8").RowHeight = 30

Unload UserForm1

End Sub

merci encore
A+
shasha
 
shasha,

dans ta deuxième boucle :
------------------------------------------------
For y = 0 To Me.TESTSST.ListCount - 1
If Me.TESTSST.Selected(i) = True Then
num1 = num1 + 1
------------------------------------------------

il faut remplacer selected(i) par selected(y) :

------------------------------------------------
For y = 0 To Me.TESTSST.ListCount - 1
If Me.TESTSST.Selected(y) = True Then
num1 = num1 + 1
------------------------------------------------

tu peux aussi supprimer Dim s et Dim v qui ne servent à rien.

bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
539
Réponses
3
Affichages
842
Réponses
6
Affichages
645
Retour