Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème concernant ma listbox

Aqueduc

XLDnaute Nouveau
Bonjour/bonsoir à tous,
actuellement je réalise un petit programme excel pour gérer l'inventaire d'un magasin. J'ai réalisé un formulaire général contenant des boutons qui ouvrent d'autres formulaires.

Actuellement, je suis sur le formulaire pour retirer un article de la base de données, pour se faire, j'utilise une combobox et une textebox afin d'effectuer une recherche ( grace à un filtre sélectionné avec les deux éléments cités suivant ) . Le résultat de la recherche s'affiche alors dans une listbox, d'où mon problème :>

En soit mon code fonctionne mais ma listbox n'affiche pas toute les informations contenue dans le tableau ( uniquement la première colonne ), de ce fait, je n'arrive pas à comprendre pourquoi elle me fait cela ( pas d'erreur de plage de cellule, ni de nom et j'en passe).

Je vous passe mon fichier en pièce jointe en espérant que quelqu'un ai une solution !
Merci d'avance,
Aqueduc.
 

Pièces jointes

  • INVENTAIRE-MAGASIN.xlsm
    48.2 KB · Affichages: 15

Lone-wolf

XLDnaute Barbatruc
Bonjour Aqueduc et bienvenue sur XLD , Le Forum

Il faut parametrer la listbox en ajoutant le nombre de colonnes et leurs largeurs; soit directement dans les propriétés, soit en l'initialisant dans le formulaire <Userform_Initialize()>.

Pour la recherche, pas besoin de la textbox et du filtre avancé, la combobox suffit (évite de taper tous les types de produit si tu y ajoute la liste sans doublons).
Et pour éviter une erreur de manipulation lors de la suppression d'un produit, j'ajouterais des textbox, pour afficher le produit sélectionné. Pas besoin non plus de tous ces formulaires.

EDIT: En PJ, le nouveau fichier. J'ai rajouté une colonne pour avoir un identifiant unique.

Mode d'emploi:

Double-clique sur la feuille pour afficher le formulaire.

Pour ajouter un nouveau produit: remplit les textbox's en dessous de la listbox, puis clique sur Nouveau. En ce qui concerne les textbox's % et €, inscrit juste le chiffre.

Pour modifier un produit: sélectionne un type avec la combobox, clique sur une ligne de la listbox, apporte les modifications aux textbox's
en dessous de la listbox, puis clique sur Modifier.

Pour supprimer un produit: sélectionne un type avec la combobox, clique sur une ligne de la listbox, puis clique sur Supprimer.

Le bouton Actualiser sert à afficher toutes les données dans la listbox.

Pour quitter: clique sur le bouton Quitter.

NOTE: l'identifiant sera créé automatiquement. Ne pas modifier la textbox ID.
 

Pièces jointes

  • INVENTAIRE-MAGASIN.zip
    45.3 KB · Affichages: 23
Dernière édition:

Aqueduc

XLDnaute Nouveau
Salut Lone-wolf,
Merci pour ta réponse rapide ! Et merci pour la modification que tu m'as apporté, je continuerais sur base de ta réponse Merci encore beaucoup et passe un bon dimanche ( et bonne finale )
Aqueduc.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Aqueduc

Merci pareillement.

Une modification du bouton Actualiser

VB:
Private Sub Actualiser_Click()
    ComboBox1.Text = ""
    With Ws
        derlig = .Range("a" & Rows.Count).End(xlUp).Row
        n = 0
        bd = Range("a2:f" & derlig).Value
        For i = 1 To UBound(bd)
            n = n + 1: ReDim Preserve Tbl(1 To UBound(bd, 2), 1 To n)
            For k = 1 To UBound(bd, 2): Tbl(k, n) = bd(i, k): Next k
        Next i
        ListBox1.Column = Tbl
        TextBox7 = ListBox1.ListCount
    End With

    On Error Resume Next
    For i = 0 To ListBox1.ListCount - 1
        For col = 1 To 3
            If IsNumeric(ListBox1.List(i, col)) Then _
               ListBox1.List(i, col) = Format(ListBox1.List(i, col), "0.00€")
        Next col
        For col = 4 To 5
            ListBox1.List(i, col) = Format(ListBox1.List(i, col), "0%")
        Next col
    Next i

End Sub
 

Discussions similaires

Réponses
18
Affichages
641
Réponses
21
Affichages
983
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…