XL 2016 Administrer une base de données par userform

Jean_Valjean

XLDnaute Nouveau
Bonjour,

Voici mon problème. J'ai un catalogue de matières, dans un tableau structuré, avec un fournisseur, une référence, une épaisseur et une finition. Je souhaite administrer ce catalogue par un userform qui permette d'ajouter / modifier / supprimer une matière. Je joins le fichier pour plus de clarté.

La partie ajout d'une matière fonctionne bien. Pour la recherche j'ai deux clés d'entrée : soit par fournisseur (combobox avevc un rowsource sur un TCD issu du tableau structuré), soit par mot clé sur la matière (textbox), jusque là ça marche.

Mais je suis bloqué par mes faibles connaissances en vba : j'aimerais qu'au clic sur une ligne de la listbox les textbox de la partie gauche soient alimentés automatiquement pour pouvoir modifier ou supprimer la matière correspondante. Si quelqu'un a une astuce qui me mettrait sur la voie...
 

Pièces jointes

  • Admin_matières_v3.xlsm
    70 KB · Affichages: 9

JM27

XLDnaute Barbatruc
Bonjour
Quand tu alimentes le liste box , tu ajoutes une colonne masquée avec le numéro de la ligne du tableau

et ensuite au click sur la listbox tu récupères le numéro de ligne pour alimenter les autre objets
 

Pièces jointes

  • Admin_matières_v3.xlsm
    54.8 KB · Affichages: 8

JM27

XLDnaute Barbatruc
bonjour

essayes de modifier cette procédure
et cela le fera
VB:
Private Sub TextBox_rech_mot_Change()

    ComboBox_rech_fr.Value = Null
    With Sheets("Fournisseurs")
    i = 3
 
    ListBox_rech_res.Clear
   
        If TextBox_rech_mot <> "" Then
            For ligne = 4 To 20000
                If Cells(ligne, 2) Like "*" & TextBox_rech_mot & "*" Then
                    ListBox_rech_res.AddItem Cells(ligne, 2)
                End If
            Next
        End If
    End With
End Sub

en modifiant la ligne
ListBox_rech_res.AddItem Cells(ligne, 2)
par la méthode list
vu dans la macro Private Sub ComboBox_rech_fr_Click()


de plus comme tu as beaucoup de textbox , tu peux mettre dans la propriété tag de celle ci la colonne correspondante et faire une boucle pour chaque objet de l'userform ayant un tag.
cela simplifierait grandement tes macros
Edit : je n'ai pas tout fait , je te laisses faire le reste
 

Pièces jointes

  • Admin_matières_v3.xlsm
    55.9 KB · Affichages: 4
Dernière édition:

JM27

XLDnaute Barbatruc
D'autres erreurs trouvées

notamment derligne lors de la validation , en mode modification.
nota : la suppression ne fonctionnait pas
 

Pièces jointes

  • Admin_matières_v3.xlsm
    58.9 KB · Affichages: 5
Dernière édition:

Jean_Valjean

XLDnaute Nouveau
Je ne connaissais pas le tag, ça évite bien des lignes de code... j'ai suivi ton conseil et j'ai mis les tag correspondant à chaque colonne sur les bons textbox.

Je crois que ça a déréglé l'ajout d'une matière qui ne fonctionne plus et j'ai l'impression que la derligne fait aussi des caprices à la modification
 

Pièces jointes

  • Admin_matières_v3.xlsm
    68.5 KB · Affichages: 2

JM27

XLDnaute Barbatruc
bonsoir
il peut rester quelques bug
A tester
nota : j'aurais fais différemment : ta logique de fonctionnement peut poser pb dans certains cas ( j'ai fais quelques modifs en conséquence) ; si il y a d'autres utilisateurs , ils seront perdus
 

Pièces jointes

  • Admin_matières_v3.xlsm
    59.3 KB · Affichages: 5

JM27

XLDnaute Barbatruc
a tester car il peut rester quelques bugs

Edit : un petit bug détecté , fichier à recharger

V6 avec module de classe
 

Pièces jointes

  • Admin_matières_v5.xlsm
    72.9 KB · Affichages: 12
  • Admin_matières_modulede classe v6.xlsm
    72.7 KB · Affichages: 18
Dernière édition:

Discussions similaires

Statistiques des forums

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