[excel] boucler sur listbox

Résolu
ced3c Messages postés 240 Statut Membre -  
ced3c Messages postés 240 Statut Membre -
Bonjour à tous,

J'ai une listbox de 5 colonnes multisélection qui affiche une plage de cellule de la feuille "Cheques" (A3:E)
Dans un textbox "TB_num_remise" j'inscrit un nombre.

En sélectionnant une ligne de ma listbox j'aimerai inscrire la valeur de mon textbox dans la colonne "E" de ma feuille au niveau de la ligne sélectionnée.

Pour l'instant j'arrive à le faire en sélectionnant une seule ligne avec ceci:

[Cheques!E3].Offset(Me.ListBox1.ListIndex).Value = TB_num_remise.Value


Par contre je ne sais pas comment le faire en sélectionnant plusieurs lignes dans ma listbox

Merci d'avance

5 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Pour boucler sur une listBox et récupérer les lignes sélectionnées :
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then 
            MsgBox ListBox1.List(i) & " est situé à la ligne " & i + 1
        End If
    Next i

    0
  2. ced3c Messages postés 240 Statut Membre 5
     
    Bonjour et merci encore une fois pijaku de prendre le temps de m'aider.

    Ce que je cherche est d'envoyer la valeur contenue dans le textbox dans la colonne "E" de la feuille "Cheques" des lignes sélectionneées.
    Je n'y arrive pour le moment qu'en sélectionnant une seule ligne avec ceci

    [Cheques!E3].Offset(Me.ListBox1.ListIndex).Value = TB_num_remise.Value


    J'aimerai faire la même chose mais pour toutes les lignes sélectionnées si possible.
    Je ne sais pas comment adapter votre code au mien.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      tu mélanges tout... TextBox et lignes sélectionnées + listbox, je ne comprend pas...
      0
  3. ced3c Messages postés 240 Statut Membre 5
     
    Désolé il est vrai que je ne dois pas être très clair
    Je peux joindre le fichier qui j'espère sera plus clair

    https://www.cjoint.com/?0JjwGYBPHYQ

    C'est dans l'onglet "Remise de chèques"
    J'aimerai sélectionner plusieurs lignes dans la listbox et leur donner la valeur de la textbox

    Merci pour votre patiente
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,

      Si j'ai bien compris....
      Dans l'UserForm Usf_main, Onglet "Remise de chèques", tu inscris une valeur dans le textbox TB_num_remise, sélectionnes plusieurs lignes dans la listbox1 et, en cliquant sur le bouton valider, tu souhaites que la colonne 5 (N° de remise) des lignes sélectionnées se voient attribuer la valeur que tu as saisi dans le textbox.
      C'est bien ça?
      0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Voici ton code :

    Private Sub Cmd_remise_Click()
        
        'Si rien n'a été saisi dans le textbox : message + sortie
        If TB_num_remise = "" Then MsgBox "Saisie obligatoire du numéro de remise.", vbCritical: Exit Sub
        
        'boucle sur toutes les lignes de la listbox
        For i = 0 To ListBox1.ListCount - 1
            'si la ligne est sélectionnée
            If ListBox1.Selected(i) = True Then
                'affectation de la valeur de la textbox dans la colonne "E" correspondant a la ligne de la listbox
                Sheets("Cheques").Range("E" & i + 3) = TB_num_remise
            End If
        Next i
        
        'Rechargement de la listbox pour afficher les changements
        With Sheets("Cheques")
            Me.ListBox1.List = .Range("A3:E" & .[B65000].End(xlUp).Row()).Value
        End With
        
        'Format euros sur la 3eme colonne de la listbox
        For i = 0 To ListBox1.ListCount - 1
          ListBox1.List(i, 2) = Format(ListBox1.List(i, 2), "0.00 €")
        Next i
    End Sub
    

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

    Posez votre question
  6. ced3c Messages postés 240 Statut Membre 5
     
    Encore une fois un grand merci Pijaku, c'est exactement ce que je voulais faire.
    0