XL 2016 Gros basard dans la recuperation de mes données listbox

RoyalP

XLDnaute Occasionnel
Hello , je suis en train de réaliser un petit classeur pour une asso (une gestion de facture etc) j'ai bien avancé mais je bloque sur un truc tout bête qui me rend fou depuis 4 heures !!!!

j'ai un recap de devis dans le devis il me recupére bien les infos suivantes:
N° du devis, Date du devis, Ref Produit, description produit, quantité,le taux tva mais apres pour les autres infos genre Code Client etc il me les fout dans un B***** sans nom
je vous joint le fichier pour ceux qui arriverons a m'aider , je les remercie d'avance.
 

Pièces jointes

  • Classeur1_devis.xlsm
    51.9 KB · Affichages: 20

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir RoyalP, bonsoir le forum,

J'ai modifié ton code. Remplace UserForm_Activate et TextBox1_Change par :

VB:
Private OD As Worksheet
Private TV As Variant
Private NL As Integer

Private Sub UserForm_Initialize()
Me.lblfch = Date
With ListBox1
    .ColumnCount = 10
    .ColumnWidths = "60 pt;60 pt;40 pt;185 pt;30 pt;40 pt ;50 pt ;50pt ;50pt ;50pt"
End With
Set OD = Worksheets("DEVIS")
TV = OD.Range("A1").CurrentRegion
NL = UBound(TV, 1)
End Sub

Private Sub TextBox1_Change()
Dim Total As Double

OD.Visible = True
OD.Activate
Me.ListBox1.Clear
If Me.TextBox1.Value = "" Then Exit Sub
For I = 2 To NL
    If InStr(1, OD.Cells(I, 2), Me.TextBox1.Value, vbTextCompare) > 0 Then
        With Me.ListBox1
            .AddItem
            For J = 1 To 10
                .Column(J - 1, .ListCount - 1) = OD.Cells(I, J)
                If J = 6 Then Total = Total + .Column(J - 1, .ListCount - 1)
            Next J
            
        End With
    End If
Next I
TextBox2.Value = Me.ListBox1.ListCount
Me.TextBox3 = Total
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Il faut stocker le numéro de ligne dans la ListBox1 si tu veux pouvoir afficher plusieurs produits dans recap_devis_fact. Cela implique de supprimer une colonne de la ListBox1 dans consuldevis. Quelle serait la colonne qui pourrait être supprimée ?
 

patricktoulon

XLDnaute Barbatruc
bonjour a tous Robert pourquoi supprimer une colonne ????
perso je les met toutes (les 12) sans problème
je règle même les columnwidth calqué sur la plage
ainsi que les labels d’Entêtes d'ailleurs
regardez la derniere colonne ;)
demo3.gif
 

patricktoulon

XLDnaute Barbatruc
Perdu!!!! Robert ;)c'est pas propriété rowsource meme si en effet il y a la dedans une histore de range
je la donne l'astuce comme ca on en parle plus tout le monde saura
a ben ça alors ;)
VB:
Private Sub UserForm_Activate()

    With ListBox1
        .ColumnCount = 15
        '--------------------------------------------------
        ' !!!!!!C EST CA L ASTUCE!!!!!!!!!on la renplie avec une ligne de cellule(15 colonne) et on la clear
        .List = Range("A1").Resize(1, .ColumnCount).Value: .Clear
        '--------------------------------------------------

        'elle est maintenant dimentionné a 15 colonne et valide pour 15 colonnes  MEME!!!!!! si elle est vide !!!!!!!!!!!!

        'maintenant on (((peut)))!!! la remplir normalement avec 2 boucles ligne/colonnes )imbriquées

        For i = 0 To 10
            .AddItem ""
            For c = 0 To 14
                .List(i, c) = "Ligne" & i + 1 & " Col" & c + 1
            Next
        Next
    End With



End Sub
Wagadougou!!!
EN GROS C'EST ROWSOURCE SANS ROWSOURCE :p ET DONC SANS SES INCONVENANTS

demo3.gif
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
je l'ai mis dans les astuces
 

RoyalP

XLDnaute Occasionnel
merci robert, y'a juste un petit bug si tu sélectionne par exemple le devis 1002 et que tu sélectionne le deuxième article dans le devis il y a un décalage quand tu click sur consulter. La qts est déplacé en dessous de là ou elle devrait etre.
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki