Bonjour à tous !

Je suis étudiante en apprentissage et dans mon entreprise on m'a demandé de faire un logiciel VBA pour simplifier le travail des personnes qui contrôlent des pièces.
Mon problème parait simple et pourtant, je n'ai pas réussi à trouver des informations qui convenaient pour le résoudre. J'ai donc fini par faire quelque chose qui fonctionne mais ça ne me parait pas très correct. J'aurai donc besoin que vous me dites ce que vous en pensez et s'il y a une meilleure façon de le faire qui serait beaucoup plus "propre".

Alors voilà, ce que j'ai essayé de faire se résume en quelques étapes :
1. Le contrôleur choisit la pièce sur laquelle il doit faire le contrôle à l'aide de la combobox de la fenêtre visible ci-dessous.
2. Les champs "Référence", "Matière, État" et "Nom du classeur" se remplissent automatiquement en fonction de ce qui a été choisi.

Nom : Fenetre.png
Affichages : 177
Taille : 35,3 Ko

Pour que les champs concernés se remplissent automatiquement, je fais intervenir une basse de donnée qui se présente comme suit et est un autre classeur qui reste fermé.

Nom : BDD.PNG
Affichages : 175
Taille : 9,5 Ko

J'ai donc écrit le code suivant (à partir des quelques infos trouvées) qui fonctionne mais qui me parait peu correct.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Private Sub ComboBoxInfo1_Change()
 
    Dim n As Integer
    Dim chemin As String
    Dim a, b, c As String
 
    chemin = "MonChemin\BaseDeDonnee.xlsx"
 
    n = ComboBoxInfo1.ListIndex
 
    If Not ComboBoxInfo1.Text = "" Then
        With Workbooks.Open(chemin)
            a = Sheets(1).Range("B" & n + 2).Value
            b = Sheets(1).Range("C" & n + 2).Value
            c = Sheets(1).Range("D" & n + 2).Value
            ActiveWorkbook.Close
        End With
 
        FenetreInfosEnTete.TextBoxInfo2.Text = a
        FenetreInfosEnTete.TextBoxInfo4.Text = b
        FenetreInfosEnTete.TextBoxInfo8.Text = c
 
    End If
 
End Sub
Le "n + 2" est nécessaire pour que je puisse récupérer les bonnes infos sur les bonnes lignes de ma base de donnée.

Merci d'avance pour vos réponse et votre aide.