Bonjour à toutes et tous,


Je fais appelle à vos connaissances aujourd'hui car je suis nulle. Oui, autant ne pas se mentir je ne maitrise pas VBA.

Je dois réaliser un utilitaire logiciel de détermination d'impact environnemental pour le choix de matériaux lors de la conception d'un ensemble.
Ce logiciel doit permettre, notamment :
  • la saisie de l'arborescence de l'ensemble à concevoir
  • la sélection de matériaux de chaque pièce et de la masse utilisée
  • calculer l'impact environnemental de chaque pièce de manière globale avec pondération et détaillée
  • fournir un diagramme radar d'impact détaillé



Certains me diront, "pff facile, regarde ce cours-ci" ou encore "il suffit de faire ça, trop simple"... Sachez que je suis partie de vraiment rien il y a un mois et j'ai du lire tous les cours VBA disponibles sur internet et j'ai même acheté un livre. J'ai donc les bases du langage, des fonctions, des macros,... et quelques notions supplémentaires. Mais pas du tout la logique; je suis perdue. Je sais où je veux aller mais je ne sais pas comment le réaliser.

J'ai créé un Userform UF_Pièces qui se présente de la manière suivante:
Pièce jointe 185134

Je veux saisir le nom de mon ensemble, sous ensemble, pièce ainsi que ca masse. Cela fonctionne et est renvoyé à la ligne spécifiée sur la feuille "arborescence":
Nom : UF_Pièces & Arborescence.PNG
Affichages : 579
Taille : 26,7 Ko

Mon premier problème est le suivant: je n'arrive pas à créer une boucle qui, à chaque fois que j'appuie sur "valider" écris les valeurs saisies un ligne en dessous. Voila ce que j'ai fait et cela écrit toujours sur la même ligne:

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
Private Sub B_Val_P_Click()
Ensemble = TB_Ensemble.Text
Nom_SE = TB_SE.Text
Nom_Piece = TB_Nom_P.Text
Mat_Piece = CB_Mat_P.Text
Masse_Piece = TB_Masse_P.Text
 
If B_Val_P = True Then
i = 3
Worksheets("Arborescence").Cells(i, 1) = Ensemble
Worksheets("Arborescence").Cells(i, 2) = Nom_SE
Worksheets("Arborescence").Cells(i, 3) = Nom_Piece
Worksheets("Arborescence").Cells(i, 4) = Mat_Piece
Worksheets("Arborescence").Cells(i, 5) = Masse_Piece
i = i + 1
End If
 
End Sub
Mon second problème est que je n'arrive pas à sélectionner une plage de données allant de A2 à A20 -pour le moment, sur la feuille Matériaux. En effet je n'arrive qu'à sélectionner une cellule, en l’occurrence A2 par "range", si je met "cells" et la plage voulue, il me dit incompatibilité de type....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub CB_Mat_P_Change()
CB_Mat_P = Worksheets("Matériaux").Range("A2")
End Sub

Je pense que pour l'instant je ne vais pas vous embêter plus que ça, si quelqu'un est passionné par mon problème, je vous expliquerais le reste.
Je vous remercie en tout cas par avance de votre aide.