Rectification code

Bonjour le Forum

Dans ma Userform, j'ai une listbox, je souhaite copier les éléments sélectionnés de cette listbox vers une feuille excel ''Reçu".

J'ai crée un bouton et ça marche, sauf qu'il copie toute la listbox au lieu de copier seulement les éléments selectionnés.

Quelqu'un peut m'aider à rectifier mon code Svp. Merci

Private Sub CommandButton6_Click()

Dim x As Integer, Nb_L_ListBox As Integer
With Worksheets("Reçu")
For x = 1 To Me.ListBox1.ListCount
.Cells(x, 5) = Me.ListBox1.List(x - 1, 0)
.Cells(x, 6) = Me.ListBox1.List(x - 1, 1)
.Cells(x, 7) = Me.ListBox1.List(x - 1, 2)
Next x
End With
End Sub

Bonjour Saber, bonjour le forum,

Essaie comme ça :

Private Sub CommandButton6_Click()
Dim x As Integer, Nb_L_ListBox As Integer

With Worksheets("Reçu")
    For x = 1 To Me.ListBox1.ListCount
        If Me.ListBox1.Selected(x) = True Then
            .Cells(x, 5) = Me.ListBox1.List(x - 1, 0)
            .Cells(x, 6) = Me.ListBox1.List(x - 1, 1)
            .Cells(x, 7) = Me.ListBox1.List(x - 1, 2)
        End If
    Next x
End With
End Sub

Comprends pas bien pourquoi List(x - 1) !?...

Merci pour votre aide

Mais ça bloque au niveau de If Me.ListBox1.Selected(x) = True Then

Re,

La foule en délire : Le fichier ! Le fichier !...

Voici mon fichier, le bouton en question est le bouton SORTIE

Merci

6fichier-test.xlsm (262.08 Ko)

Re,

Arf ! C'est parce j'avais pas compris le x - 1. Code corrigé :

Private Sub CommandButton6_Click()

Dim x As Integer, Nb_L_ListBox As Integer
With Worksheets("Reçu")
    .Range("e1:g1500").Clear
    For x = 1 To Me.ListBox1.ListCount
        If Me.ListBox1.Selected(x - 1) = True Then
            .Cells(x, 5) = Me.ListBox1.List(x - 1, 0)
            .Cells(x, 6) = Me.ListBox1.List(x - 1, 1)
            .Cells(x, 7) = Me.ListBox1.List(x - 1, 2)
            .Cells(x, 8) = Me.ListBox1.List(x - 1, 3)
            .Cells(x, 9) = Me.ListBox1.List(x - 1, 4)
        End If
    Next x
End With
End Sub

ça marche merci beaucoup

Seule amélioration peut être, comment exporter la liste sans lignes vides ; car si je sélectionne la première et la 4 eme ligne de la listbox, il exporte une ligne remplie trois vide et une remplie. je souhaite que ça soit sans vide si possible

Re,

Private Sub CommandButton6_Click()
Dim DL As Integer
Dim x As Integer, Nb_L_ListBox As Integer
With Worksheets("Reçu")
    .Range("E1:I1500").Clear
    For x = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(x) = True Then
            DL = IIf(.Cells(1, "E").Value = "", 1, .Cells(Application.Rows.Count, "E").End(xlUp).Row + 1)
            .Cells(DL, 5) = Me.ListBox1.List(x, 0)
            .Cells(DL, 6) = Me.ListBox1.List(x, 1)
            .Cells(DL, 7) = Me.ListBox1.List(x, 2)
            .Cells(DL, 8) = Me.ListBox1.List(x, 3)
            .Cells(DL, 9) = Me.ListBox1.List(x, 4)
        End If
    Next x
End With
End Sub

Super merci Beaucoup

je vais continuer maintenant mon projet

Il me reste seulement un bouton modifier qui va me permettre de modifier ma base de données a partir de la listbox, pour cela j'ai crée 3 textbox que je cherche à remplir a partir de la liste box ( cliclistbox), et un bouton modifier pour modifier ma base de donnés selon la valeur saisie en Textbox .. J'abuse si je vous demande votre aide sur le code ?

Re,

Je reste attentif à ce fil... Si tu en crées un autre, donne nous le lien...

vous voulez que j'attache mon projet mis à jour ?

voulez que je mes en attaché mon projet mis à jour ?

Re,

Non, non ! On va y aller par étape. Quand tu as un soucis tu poses ta question...

d'accord merci

pour simplifier j'ai crée un seul textbox4 que je souhaite remplir à partir de la ligne B de la ligne selectionné de ma listbox

j'ai mis le code et ça ne marche pas comme d'hab

Private Sub ListBox1_Click()
TextBox1 = Range("b" & ListBox1.ListIndex + 1)
End Sub

Re,

Tu parles de TextBox4 et dans ton code TextBox1 ?!...

Tu as mélanger ligne et colonne dans ton énoncé.

Spécifie systématiquement l'onglet pour éviter les galères.

ListIndex + 1 signifie que ton tableau commence à la première ligne. Tu n'as pas de ligne d'entête ?!

À vérifier :

Me.TextBox4.Value = Worksheets("Reçu").Cells(ListBox1.ListIndex + 1, "B")

toujours rien,

c est peut être a cause des propreté de ma listbox qui permet la selection multiple ?

Re,

Bizarrement, ça fonctionne au premier clic avec l'événement Change et pas avec l'événement Clic...

j'ai avancé beaucoup.

pour modifier les lignes de la listbox de la userform1 j'ai crée une autre userform que j'ai volu alimenter par le double clic sur la listbox.

Mais il y a un souci avec ce code

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim ligne
'On Error Resume Next
ReDim TbListbox(1 To ListBox1.ColumnCount)
ligne = ListBox1.ListIndex
For x = 1 To ListBox1.ColumnCount
  TextBox1(x) = ListBox1.List(ligne, x - 1)
Next x
UserForm11.Show
End Sub

Help please

Re,

pas bien compris où tu voulais en venir mais :

 TextBox1(x) = ListBox1.List(ligne, x - 1)

Ne devrait pas être :

 TbListbox(x) = ListBox1.List(ligne, x - 1)

Bonjour

Vous avez raison, c'est réglé.

Maintenant, j'ai un autre problème, quand je modifie les données de la feuille BD, la listbox ne s'actualise pas, il faut que je redémarre la userform pour que la listbox s'actualise, y a t il moyen de créer un bouton qui rafraîchi la listbox ?

Rechercher des sujets similaires à "rectification code"