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.
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é.
J'ai donc écrit le code suivant (à partir des quelques infos trouvées) qui fonctionne mais qui me parait peu correct.
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.
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
Merci d'avance pour vos réponse et votre aide.
Partager