Enregistrement ListBox
Bonjour le forum
Je viens vers vous pour avoir de l’aide afin de vérifier et améliorer macro svp.
J’ai créé un UserForm1 avec une ListBox1 (3 colonnes) alimentée par la feuille (« Coordonnées ») ligne 3, colonne B, C, D, pour ça j’ai fais ce code qui à l’air de fonctionner. (j’espère)
Private Sub UserForm_Initialize()
Label1.Caption = "Choisir une personne dans cette liste"
With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = "20;40;80"
End With
Dim DerLig As Long
Dim J As Long
Dim I As Integer
Dim K As Integer
Dim Ws As Worksheet
Set Ws = Sheets("Coordonnées")
DerLig = Ws.Range("B" & Rows.Count).End(xlUp).Row
With Me.ListBox1
.ColumnCount = 3
For J = 3 To DerLig
For K = 0 To .ListCount - 1
If .List(K, 0) = Ws.Range("B" & J) Then Exit For
Next K
If K > .ListCount - 1 Then
.AddItem Ws.Range("B" & J)
For I = 2 To 4
.List(.ListCount - 1, I - 2) = Ws.Cells(J, I) '-1
Next I
End If
Next J
End With
End SubEnsuite sur la feuille (« Visite médicale ») il y a un bouton qui ouvre UserForm1 avec la ListBox1 alimenté et un bouton Valider.
L’objectif est choisir une ligne dans ListBox1, Valider par le bouton et les infos de la ListBox1 viennent s’inscrire dans les colonnes B, C, D à la suite des renseignements déjà inscrit. Voici le code que j’ai fais.
Private Sub CommandButton1_Click()
Dim Ligne As Long, I As Integer, Colonne As Integer
With Sheets("Visite médicale")
Ligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
For I = 0 To Me.ListBox1.ListCount - 1
.Range("C" & Ligne) = Me.ListBox1.List(I, 0)
.Range("D" & Ligne) = Me.ListBox1.List(I, 1)
.Range("E" & Ligne) = Me.ListBox1.List(I, 2)
Next I
End With
End Subet la quand j'enregistre c'est long, prend la ligne 1 puis déroule jusqu'à la derniere ligne du ListBox dans ma feuille, j'y comprends plus rien !!
J’aimerai finaliser se souci pour pouvoir poursuivre car cela me bloque l’avancé de mon projet.
Merci de votre compréhension, Merci par avance.
Cdlt
Bonjour
pompaero a écrit :L’objectif est choisir une ligne dans ListBox1
Quand tu choisis une ligne tu as la propriété ListIndex différente de -1
Il te suffit de faire
Private Sub CommandButton1_Click()
Dim Ligne As Long, I As Integer, Colonne As Integer
With Sheets("Visite médicale")
Ligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
.Range("C" & Ligne) = Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
.Range("D" & Ligne) = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
.Range("E" & Ligne) = Me.ListBox1.List(Me.ListBox1.ListIndex, 2)
End With
End SubBonjour Banzai64
Merci pour ton aide et conseil
Ca marche parfaitement bien, je peux clôturer ce post.
Grand MERCI
à bientôt