liz739
Messages postés21Date d'inscriptionmercredi 28 décembre 2011StatutMembreDernière intervention30 décembre 2011
-
28 déc. 2011 à 10:39
liz739
Messages postés21Date d'inscriptionmercredi 28 décembre 2011StatutMembreDernière intervention30 décembre 2011
-
28 déc. 2011 à 14:45
Bonjour,
j'explique un peu mon problème :
c'est un logiciel dans lequel on rentre les données d'une voiture et j'ai 4boutons :
quand on appuie sur un bouton entretien les opérations realtives doivent s'inscrire dans une listbox1 (op de maintenace)
... tenue de route ...
... freinage ...
... échappement ...
soit :
- dans le userform :
Private Sub CommandButton1_Click()
UserForm1.ListBox1.Clear
Call charger_ope_entretien
End Sub
__________________________________
Private Sub CommandButton2_Click()
UserForm1.ListBox1.Clear
Call charger_ope_tenue
End Sub
____________________________________
Private Sub CommandButton3_Click()
UserForm1.ListBox1.Clear
Call charger_ope_freinage
End Sub
__________________________________
Private Sub CommandButton4_Click()
UserForm1.ListBox1.Clear
Call charger_ope_echappement
End Sub
- dans le module :
Type operation
NomOpe As String
Cout As Single
temps As Single
End Type
Public fichier(30) As donnees
Public taille As Integer
Public entretien(10) As operation
Public tenue_de_route(4) As operation
Public freinage As operation
Public Echappement As operation
____________________________________
Public Sub charger_ope_entretien()
entretien(0).NomOpe = "vidange"
entretien(1).NomOpe = "climatisation"
entretien(2).NomOpe = "filtre à huile"
entretien(3).NomOpe = "filtre à air"
entretien(4).NomOpe = "niv. lave glace"
entretien(5).NomOpe = "niv. liq. refroidissement"
entretien(6).NomOpe = "niv. liq. direction assistée"
entretien(7).NomOpe = "controle essuie-glaces"
entretien(8).NomOpe = "eclairage"
entretien(9).NomOpe = "nettoyage"
Puis quand on appuie sur un bouton ajouter une opération, l'opération de maintenace sélectionnée dans la listbox1 doit s'inscrire dans la listbox2 (coût), soit :
- dans la userform :
Private Sub CommandButton5_Click()
Call ajout_ope
End Sub
- dans le module :
Public Sub ajout_ope()
UserForm1.ListBox2.AddItem (UserForm1.ListBox1.Value)
End Sub
jusque là, c'est bon mais il faut aussi que le coût et le temps associés soit inscrit respectivement dans la listbox3 (coût) et la listbox4 (temps). on doit utiliser ce qui a été préparé avant je pense (charger_ope_entretien/tenue/freinage/echappement) mais je ne sais pas comment associé le NomOpe, le cout et le temps de chaque variable.
pour l'échappement j'ai fait ainsi : (et de meme pour le freinage)
If UserForm1.ListBox1.Value = Echappement.NomOpe Then
UserForm1.ListBox3.AddItem (Echappement.Cout)
UserForm1.ListBox4.AddItem (Echappement.temps)
End If
mais avec l'entretien et la tenue de route je n'arrive pas a associer les differents niveaux c-à-d :
quand tenue_de_route(3).NomOpe s'affiche dans la listbox2 c'est tenue_de_route(3).Cout qui s'affiche dans la listbox3 et tenue_de_route(3).temps qui s'affiche dans la listbox4.
voilou, j'ai essayé d'êre le plus complet possible
dans l'attente d'une réponse assez rapide, bonne journée !
et merci d'avance
le freinage et l'échappement fonctionne toujours mais pour l'entretien et la tenue de route seuls les (1) fonctionnent.
une idee ? (je ne connaissais pas cette fonction avant)
liz739
Messages postés21Date d'inscriptionmercredi 28 décembre 2011StatutMembreDernière intervention30 décembre 2011 28 déc. 2011 à 14:23
il n'y a toujours que les premières lignes correspondant à la vidange : entretien(0).NomOpe alors qu'il y a 10 variante de entretien.nomope
et le changement pneus : tenue_de_route(0).NomOpe alors qu'il y a 4 variantes de tenue_de_route.nomope
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 28 déc. 2011 à 14:35
Cela devient difficile sans avoir
1- le message d'erreur exact
2- le listing complet et le numéro de ligne en erreur
Moi je ne pense pas que c'est à cause du dimensionnement en tableau des 2 variables "entretien", et "tenue_de_route" que tu as une erreur, elles sont du type opération
Dans le type opération , si tu remplace single par String, peut-être n'auras tu plus d'erreur et tu pourras enlever les conversions de type Cstr et Csng
liz739
Messages postés21Date d'inscriptionmercredi 28 décembre 2011StatutMembreDernière intervention30 décembre 2011 28 déc. 2011 à 14:45
ça ne change rien, je pense plutot que cela vienne des i dans :
Public Sub ajout_ope()
A1 = CStr(entretien(i).NomOpe)
If UserForm1.ListBox1.Value = A1 Then
UserForm1.ListBox2.AddItem (UserForm1.ListBox1.Value)
UserForm1.ListBox3.AddItem CSng(entretien(i).Cout)
UserForm1.ListBox4.AddItem CSng(entretien(i).temps)
car pour la 1° ligne de la listbox 1 (ligne que l'on sélectionne pour ajouter aux listbox 2,3 et 4) ça fonctionne soit pour entretien(0).NomOpe mais pour les autres (jusqu'à 9)
je saurais envoyer une image je pourrais p-e mieux expliquer avec un visuel...