Correspondance sélection multiple listbox avec tableau

Bonjour à tous,

Après avoir beaucoup appris sur le vba en arpentant ce forum à la recherche des différents codes dont j'avais besoin,

Me voici pour la première fois face à un problème dont je n'arrive pas à trouver la solution dans les différents topics.

Je vais donc essayer de vous décrire au mieux la situation:

J'ai, dans un userform, une listbox qui reprend les colonnes d'un tableau du classeur,

Quand je sélectionne des lignes de cette listbox, je voudrais que la date du jour s'affiche à droite des lignes correspondantes dans le tableau.

De là, une colonne affichera "Validé", et je saurais dans ma listbox que cette ligne est validée.

En gros, cela me permettrait de pointer mes lignes de comptes dans le cadre d'un suivi budgétaire.

Le code fonctionne, mais uniquement pour la première ligne sélectionnée, et je n'arrive pas à trouver la solution pour que les autres lignes soient bien prises en compte.

Le code est le suivant :

Sub Test_si_selection()
 Dim element_select As Boolean
    Dim nb_elements, I   As Integer

    element_select = False
    nb_elements = Pointage_dépenses.Sélection_dépenses.ListCount

    For I = 0 To nb_elements - 1
        If Pointage_dépenses.Sélection_dépenses.Selected(I) = True Then
            element_select = True

 Fact = Pointage_dépenses.Sélection_dépenses.Column(2, I)
 Fact2 = Pointage_dépenses.Sélection_dépenses.Column(4, I)

 Worksheets("Tableau").Activate
 Dim C As Range
 For Each C In Range("c3:e212")
If Not C = "" Then
If C = Fact And C.Offset(0, 2) = Fact2 Then

C.Offset(0, 4).Value = Date
End If
End If
Next C
            Exit For
       End If
    Next I

    If element_select = False Then
        MsgBox "Aucune ligne sélectionnée!!!"

        Exit Sub
        End If

End Sub

Et bien sur le fichier d'exemple complet pour que ce soit plus clair.

J'espère n'avoir pas été trop confus, et vous remercie d'avance pour toute l'aide que vous saurez m'apporter!

43exemple-test.xlsm (83.28 Ko)

Bonsoir,

Je viens de regarder rapidement ton code. Une question ou deux:

Est-ce qu'il y a un intérêt à ce que toutes les cellules soient passées une à une. Pourquoi la boucle for each?

Il faut écrire en colonne G la date et en colonne H le mot validé?

Cordialement,

Bonsoir,

et merci pour ce premier retour.

Ce dont j'ai besoin, c'est uniquement que la correspondance se fasse entre la sélection et le tableau, et c'est la seule méthode que j'ai trouvé qui fonctionnait à peu près mais je suis ouvert aux suggestions, je manque de connaissances en VBA.

Ensuite je veux juste que la date de mette en G, le mot validé se met en F grâce à une formule simple dans le tableau.

Merci encore!

En fait c'est tout bête.

Remplace ton code par:

Sub Test_si_selection()
Dim element_select As Boolean
Dim nb_elements, I   As Integer
nb_elements = Pointage_dépenses.Sélection_dépenses.ListCount

For I = 0 To Me.Sélection_dépenses.ListCount - 1 'nb_elements - 1
    If Me.Sélection_dépenses.Selected(I) = True Then
        'pointage des lignes dès lors qu'elles sont sélectionnées
        With Sheets("Tableau")
            .Cells(I + 3, "G").Value = Date         ' date
            .Cells(I + 3, "F").Value = "Validé"     ' info validation
        End With
    End If
Next I
End Sub

Si tu observes bien ta listbox, les lignes se désélectionnent lorsque "la bête formule inscrit validé"

En Pj ton fichier

Bonne soirée

Cordialement,


juste une remarque, quand tu écris ton code pense à faire des indentations pour une meilleure lecture.

Bonne suite

32exemple-test.xlsm (80.35 Ko)

J'avais remarqué également ce problème et mis en place un système de saisie du mot "Validé" également mais le problème était toujours le même.

Je viens de tester le fichier que tu m'as transmis, le problème est toujours là, seule la première ligne est prise en compte, les autres de désélectionnent.

Merci beaucoup en tout cas de te pencher sur mon cas, et c'est bien noté pour la remarque,je ferai bien gaffe maintenant!

Effectivement, je n'avais pas testé. Ca semblait tellement évident.

Je viens de faire une recherche rapide sur le net et pourtant....

https://forum.excel-pratique.com/excel/recuperer-lignes-selectionnees-d-un-listbox-t73674.html

Le traitement est le même.

Je vais regarder dès que j'ai un peu de temps pour contourner le problème.

Cordialement,

Merci beaucoup à toi,

C'est très sympa de te pencher sur mon problème, ça fait des jours que je m'arrache les cheveux là-dessus...

Voilà en mettant les données dans un tableau. Du coup l'écriture se fait en une fois.

Mais si d'autres lisent ce fil, j'aimerai bien trouver l'explication du dysfonctionnement de la première proposition.

Cordialement,

50exemple-test.xlsm (87.22 Ko)

Merci infiniment, cette solution fonctionne en tout cas parfaitement!

Effectivement, si d'autres ont la réponse pour la première solution, je suis preneur également.

Merci beaucoup pour la rapidité de ta réponse, ce forum est top!

A bientôt.

Content pour toi.

Merci de passer le fil en résolu. Bouton situé à coté du bouton éditer.

Bonne suite.

Rechercher des sujets similaires à "correspondance selection multiple listbox tableau"