XL 2021 PB Alimentation Tableau structuré depuis un ListBox

jeff1494

XLDnaute Occasionnel
Bonjour à toutes et tous;
Je me tourne vers vous car je rencontre un problème.
Je veux mettre à jour un tableau structuré depuis un ListBox à choix multiple, or mon problème est que la mise à jour dans la feuille de destination se fait toujours sur la même ligne.
Au départ le tableau est vide.

Le fichier possède 3 feuilles :
  1. Feuille "LISTE" qui correspond à celle que je veux remplir.
  2. Feuille "Params" qui contient des paramètres utilisés dans la version complète de mon fichier.
  3. Feuille "INVENDUS" qui contient les lignes qui chargent le ListBox, et qui doivent donc être copiées dans la feuille "LISTE".
En fait une fois le formulaire affiché je dois pouvoir sélectionner plusieurs lignes puis au travers du bouton "Valider" la procédure devrait mettre à jour la feuille "LISTE".

Pour aider je joins le fichier. La procédure se trouve dans le code du formulaire.

D'avance je remercie celui ou celle qui aura la gentillesse de se pencher sur mon soucis.
Je vous souhaite à toutes et tous une bonne et heureuse année 2025.
 

Pièces jointes

  • Vente-Vide-Grenier-V08.xlsm
    135.2 KB · Affichages: 6

cathodique

XLDnaute Barbatruc
Il est possible de "filtrer" le tableau par rapport à la colonne que tu m'as indiqué.
Cependant, dans cette colonne tu as mis une liste de validation dans laquelle, il n'y a pas le mot "Transféré".
Re,
à tester, si j'ai bien. Ajoute le mot "Transféré" dans la colonne "Décision". Fais un appel à la procédure ci-dessous depuis Private Sub UserForm_Initialize(). Il faut mettre la sub dans le module de l'userform.
VB:
Sub RemplirListBox()
    Dim tbl As ListObject, Col As ListColumn
    Dim i As Long, j As Long, NbLig As Long, n As Long
    Dim Tmp() As Variant, Tr() As Variant

    Set tbl = Range("Tbl_Invendus").ListObject
    Set Col = tbl.ListColumns("Décision")

    NbLig = tbl.ListRows.Count

       ReDim Tmp(1 To NbLig, 1 To tbl.ListColumns.Count)

    n = 0

    ' Parcourir les lignes du tableau
    For i = 1 To NbLig
        If Col.DataBodyRange.Cells(i, 1).Value <> "Transféré" Then
            n = n + 1
            For j = 1 To tbl.ListColumns.Count
                Tmp(n, j) = tbl.DataBodyRange.Cells(i, j).Value
            Next j
        End If
    Next i

   If n > 0 Then
        ReDim Tr(1 To n, 1 To tbl.ListColumns.Count)
        For i = 1 To n
            For j = 1 To tbl.ListColumns.Count
                Tr(i, j) = Tmp(i, j)
            Next j
        Next i
        Me.ListBox1.List = Tr
    Else
        Me.ListBox1.Clear
    End If
End Sub
 

jeff1494

XLDnaute Occasionnel
Bonjour à vous deux;

Alors pour expliquer un peu le pourquoi de ces valeurs en dernière colonne. Je vends dans un vide-grenier permanent certains de mes objets, et à la fin ou en-cours de vente, je peux être amené à prendre certaines décisions comme par exemple demander au prestataire du vide-grenier de voir avec moi ce qu'il est advenu d'un objet en particulier.

Alors dans la colonne "Décisions" je renseigne le statut de l'objet. J'ai créé une liste de validation pour être sûr de l'uniformité du formatage de la décision, car dans le futur je pourrais devoir faire des recherches sur ce critère.

En fait je veux pouvoir suivre ce qu'il arrive à un objet durant le temps de la vente.
Il se peut qu'un objet soit volé et que je ne retrouve pas à la fin, et je veux pouvoir par exemple calculé le montant total de ces pertes.

Voilà rapidement à quoi sert la colonne et la liste de validation. J'ai pensé à ajouter dans le TS des invendus une colonne supplémentaire avec ce statut "Transféré", mais ayant bien avancé sans j'ai continué à avancer.

Dans tous les cas je vous remercie pour votre temps et votre gentillesse, ainsi que pour toute l'aide que vous m'apportez.
Bonne journée à vous deux.
 

jeff1494

XLDnaute Occasionnel
Re-Bonjour;
@ChTi160 ;
Basé sur ton code (#17 d'hier), je dois maintenant faire une modification qui serait de copier les commentaires (des miniatures) qui sont dans les cellules de la colonne B de la feuille INVENDUS vers les cellules correspondantes de la feuille LISTE.

Je pensais pouvoir m'en sortir seul, c'est pourquoi je n'en ai pas parlé avant, mais je dois bien me rendre compte que je n'y arrive pas, et que j'ai beaucoup surestimé mes connaissance et capacités.
Donc si tu avais la gentillesse de modifier ce code pour prendre en compte cette copie je t'en serais reconnaissant.
Je te prie de m'excuser pour ma croyance en mes capacités qui t'obligerait à reprendre ton code.
En tous cas merci encore.
Bonne journée à toi.
 

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
jeff
je ne comprends pas
de copier les commentaires (des miniatures) qui sont dans les cellules de la colonne B de la feuille INVENDUS vers les cellules correspondantes de la feuille LISTE.
il me semble que les valeurs de la Colonne "B" de la feuille "INVENDUS" sont copiés en Colonne B de la Feuille "LISTE"
Explique moi ?
Jean marie
 

cathodique

XLDnaute Barbatruc
Re-Bonjour;
@ChTi160 ;
Basé sur ton code (#17 d'hier), je dois maintenant faire une modification qui serait de copier les commentaires (des miniatures) qui sont dans les cellules de la colonne B de la feuille INVENDUS vers les cellules correspondantes de la feuille LISTE.

Je pensais pouvoir m'en sortir seul, c'est pourquoi je n'en ai pas parlé avant, mais je dois bien me rendre compte que je n'y arrive pas, et que j'ai beaucoup surestimé mes connaissance et capacités.
Donc si tu avais la gentillesse de modifier ce code pour prendre en compte cette copie je t'en serais reconnaissant.
Je te prie de m'excuser pour ma croyance en mes capacités qui t'obligerait à reprendre ton code.
En tous cas merci encore.
Bonne journée à toi.
Bonjour,

J'ai eu la même intuition que @ChTi160 (que je salue). Quels commentaires, quelles miniatures en colonne B de la feuille invendus. Sauf erreur, de ma part, je ne vois rien dans le fichier joint au fil.

Bon dimanche.
 

jeff1494

XLDnaute Occasionnel
@ChTi160 : En fait j'ai des photos des objets mis en vente et elles sont positionnées en tant que commentaire dans la cellule de la description de l'objet (Colonne B).
@cathodique : Je prépare un fichier exemple que je vais poster dans les minutes qui suivent.
Voici donc le fichier exemple.

Bon dimanche à vous deux.
 

Pièces jointes

  • Vente-Vide-Grenier-V08.xlsm
    335 KB · Affichages: 2

jeff1494

XLDnaute Occasionnel
Si je mets les photos dans une colonne spécifique la hauteur de la ligne ainsi que la largeur de la colonne seraient trop grandes, et me poserait des soucis d'affichage.
C'est pour cela que j'ai mis des miniatures de photos dans les commentaires de la cellule contenant la description de l'objet.
 

cathodique

XLDnaute Barbatruc
Re,

Perso, je me demande si tu ne te compliques pas la vie avec ce truc.
De plus ton fichier deviendra "obèse" prématurément.
Tu as mis dans la colonne "Décision" des intitulés. tu peux ensuite extraire les données à ta guise.

Je ne sais pas trop quoi penser de ton dernier fichier (avec tes miniatures). En effet, nous t'avons proposés des codes qu'on ne retrouve pas dans ton fichier.
 

Discussions similaires

Statistiques des forums

Discussions
315 260
Messages
2 117 856
Membres
113 354
dernier inscrit
caillet