Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

poids total

5 réponses
Avatar
andre
bonjour
Je n'arrive pas a afficher le poids total de mon programe pouvez vous
m'indiquer ou se trouve l'erreur je vous joint la source
andré


Private Type Objet
Nom As String
poids As Single
Kg As Variant
End Type
Private matos() As Objet
Private sac() As Objet
Private Sub cmdQuitter_Click()
End
End Sub
Public Sub Form_Load()
'remplissage de la liste des objets
ReDim matos(54) 'On dimensionne le nombre d'élément
Index = 0
matos(1).Nom = "socles Orientable 55 cm"
matos(1).poids = 5
matos(2).Nom = "Verin standard 30 cm"
matos(2).poids = 2.2
matos(3).Nom = "Verin standard 50 cm"
matos(3).poids = 2.9
matos(4).Nom = "Verin standard 90 cm"
matos(4).poids = 3.2
matos(5).Nom = "Verin standard 110 cm"
matos(5).poids = 5.2
matos(6).Nom = "Lisse standars 30 cm "
matos(6).poids = 1.9
matos(7).Nom = "Lisse standard 40 cm "
matos(7).poids = 2.2
matos(8).Nom = " Lisse standard 50 cm "
matos(8).poids = 2.5
matos(9).Nom = "Lisse standard 70 cm "
matos(9).poids = 3.2
matos(10).Nom = "Lisse standard 74 cm "
matos(10).poids = 3.4
matos(11).Nom = "Lisse standard 100 cm "
matos(11).poids = 4.6
matos(12).Nom = "Lisse standard 150 cm "
matos(12).poids = 6.3
matos(13).Nom = "Lisse standard 200 cm "
matos(13).poids = 8.2
matos(14).Nom = " Lisse standard 250 cm "
matos(14).poids = 10
matos(15).Nom = "Lisse standard 300 cm "
matos(15).poids = 12
matos(16).Nom = "Garde-corps pour montage cadre 70 cm"
matos(16).poids = 5.3
matos(17).Nom = "Garde-corps pour montage cardre 250 cm "
matos(17).poids = 9.7
matos(18).Nom = "Garde-corps pour montage cadre 300cm "
matos(18).poids = 11.8
matos(19).Nom = "Lisses renforcées avec fer en T 150 cm "
matos(19).poids = 7
matos(20).Nom = "Lisse téléscopique 55 à 70 cm "
matos(21).poids = 6.4
matos(22).Nom = "Lisse téléscopique 77 à 100 cm "
matos(22).poids = 8.4
matos(23).Nom = "Lisse téléscopique 100 à 150 cm "
matos(23).poids = 10.4
matos(24).Nom = "Lisse téléscopique 140 à 200 cm "
matos(24).poids = 12.4
matos(25).Nom = "Lisses téléscopique 180 à 300 cm "
matos(25).poids = 14.4
matos(26).Nom = "Lisse téléscopique 250 à 400 cm "
matos(26).poids = 24.6
matos(27).Nom = "Diagonale verticale 200 x 70 cm "
matos(27).poids = 7.1
matos(28).Nom = "Diagonale verticale 200 x 100 cm "
matos(29).poids = 7.5
matos(30).Nom = " Diagonale verticale 200 x 150 cm "
matos(30).poids = 8.4
matos(31).Nom = "Diagonale verticale 200 x 200 cm"
matos(31).poids = 9.2
matos(32).Nom = "Diagonale verticale 200 x 250 cm "
matos(32).poids = 10.1
matos(33).Nom = "Diagonale verticale 200 x 300 cm "
matos(33).poids = 10.9
matos(34).Nom = "Diagonale Horizontale 70 x 250 cm "
matos(34).poids = 6.1
matos(35).Nom = "Diagonale Horizontale 70 x 300 cm"
matos(35).poids = 7.3
matos(36).Nom = "Diagonale Horizontale 100 x 250 cm"
matos(36).poids = 10
matos(37).Nom = "Diagonale Horizontale 100 x 300 cm"
matos(37).poids = 12.5
matos(38).Nom = "Diagonale Horizontale 200 x 200 cm"
matos(38).poids = 10.2
matos(39).Nom = "Diagonale Horizontale 200 x 250 cm"
matos(39).poids = 11.4
matos(40).Nom = "Diagonale Horizontale 250 x 250 cm"
matos(40).poids = 12.6
matos(41).Nom = "Diagonale Horizontale 250 x 300 cm"
matos(41).poids = 13.9
matos(42).Nom = "Diagonale Horizontale 300 x 300 cm"
matos(42).poids = 15.3
matos(43).Nom = "Poteaux standard 50 cm"
matos(43).poids = 3.5
matos(44).Nom = "Poteaux standard 100 cm "
matos(44).poids = 5.5
matos(45).Nom = "Poteaux standard 150 cm"
matos(45).poids = 7.8
matos(46).Nom = "Poteaux standard 200 cm "
matos(46).poids = 10.2
matos(47).Nom = "Poteaux standard 300 cm"
matos(47).poids = 14.6
matos(48).Nom = "Poteaux standard 400 cm "
matos(48).poids = 19.1
matos(49).Nom = "Poteaux à manchon amovible 50 cm"
matos(49).poids = 3.5
matos(50).Nom = "Poteaux à manchon amovible 100 cm"
matos(50).poids = 6.4
matos(51).Nom = "Poteaux à manchon amovible 150 cm"
matos(51).poids = 8.5
matos(51).Nom = "Poteaux à Manchon amovible 200 cm "
matos(51).poids = 11
matos(52).Nom = "Cadre 70 x 200 cm"
matos(52).poids = 17.8
matos(53).Nom = "Embase 33 cm "
matos(53).poids = 1.6
matos(54).Nom = " Socles de base 6 cm"
matos(54).poids = 1.1
'Affichage de la liste
For i = 0 To UBound(matos)
List1.AddItem matos(i).Nom
Next
End Sub
Public Sub List1_Click()
'envoi l'objet dans le sac
Index = Index + 0
ReDim Preserve sac(Index)
CopieObjetParNom List1.List(List1.ListIndex), sac(Index)
'mise à jour de l'affichage du sac
For i = 0 To UBound(sac)
list2.AddItem sac(i).Nom
list2.AddItem sac(i).poids & "kg"
Next
End Sub

'cherche l'objet dont le nom est o1 dans tout et copie ses données dans o2
Private Sub CopieObjetParNom(ByVal o1 As String, ByRef o2 As Objet)
For i = 0 To UBound(matos)
If matos(i).Nom Like o1 Then
o2.Nom = matos(i).Nom
o2.poids = matos(i).poids
Exit Sub
End If
Next
End Sub
Private Sub Clear_Click()
' Réinitialisation de la facture
list2.Clear
lblTotal = " "
lblUnité = " "
End Sub
Public Sub lblTotal_click()
Dim Total As Single
Index = Unité
For i = 0 To UBound(sac)
Total = Unité + sac(i).poids
Next
lblTotal.Caption = "Poids total : " & Total & "kg."
End Sub

5 réponses

Avatar
bayosky
Notre ami andre tapota :

bonjour
Je n'arrive pas a afficher le poids total de mon programe pouvez
vous
m'indiquer ou se trouve l'erreur je vous joint la source
andré



En fait j'y ai trouvé plusieurs défauts...
-> les listes commencent à zéro
et le premier terme est systématiquement vide
-> matos(0) n'existe pas
mais certaines boucles utilisaient matos(0)
-> le total ne se faisait pas car
Total n'était pas correctement incrémenté

la variable index ( nom fâcheux) pourrait être virée
puisque c'est Ubound de sac qui sert presque systématiquement

j'ai viré des trucs qui visiblement ne servaient plus
(Objet.Kg et Unité )
j'ai remplacé la sub de "recherche d'objet" par une ligne plus
naturelle

J'ai fait qq autres modif ...
il reste des "défauts" ( de mon point de vue )
mais
cela semble fonctionner...

pour pouvoir avoir plusieurs objets identiques dans le sac,
il faudrait ajouter un tableau Effectif( xx)
ajouter cet effectif en bout de ligne dans list2 ( dans list1.click )
en tenir compte dans le calcul du poids total

Mais pour que la liste des trucs choisis se mette correctement dans
l'ordre il faudra modifier la structure globale ...
-> pour chaque élément de matos
on ajoute une info donnant l'effectif ( 0 veut dire pas sélectionné)
ainsi, sac ne sert plus à rien
quand qqchose change, list2 est entièrement vidée et reconstruite...
cela me semble plus clair et plus facile à gérer...



A+

HB
----------------------------------------------------------------
Private Type Objet
Nom As String
poids As Single
End Type
Private matos() As Objet
Private sac() As Objet
Dim index As Integer

Private Sub cmdQuitter_Click()
End
End Sub

Public Sub Form_Load()
'remplissage de la liste des objets
ReDim matos(54)
index = 0
lblTotal.Caption = " Poids total : 0 Kg."

matos(1).Nom = "socles Orientable 55 cm"
matos(1).poids = 5
matos(2).Nom = "Verin standard 30 cm"
matos(2).poids = 2.2
matos(3).Nom = "Verin standard 50 cm"
matos(3).poids = 2.9
matos(4).Nom = "Verin standard 90 cm"
matos(4).poids = 3.2
matos(5).Nom = "Verin standard 110 cm"
matos(5).poids = 5.2
matos(6).Nom = "Lisse standars 30 cm "
matos(6).poids = 1.9
matos(7).Nom = "Lisse standard 40 cm "
matos(7).poids = 2.2
matos(8).Nom = "Lisse standard 50 cm "
matos(8).poids = 2.5
matos(9).Nom = "Lisse standard 70 cm "
matos(9).poids = 3.2
matos(10).Nom = "Lisse standard 74 cm "
matos(10).poids = 3.4
matos(11).Nom = "Lisse standard 100 cm "
matos(11).poids = 4.6
matos(12).Nom = "Lisse standard 150 cm "
matos(12).poids = 6.3
matos(13).Nom = "Lisse standard 200 cm "
matos(13).poids = 8.2
matos(14).Nom = " Lisse standard 250 cm "
matos(14).poids = 10
matos(15).Nom = "Lisse standard 300 cm "
matos(15).poids = 12
matos(16).Nom = "Garde-corps pour montage cadre 70 cm"
matos(16).poids = 5.3
matos(17).Nom = "Garde-corps pour montage cardre 250 cm "
matos(17).poids = 9.7
matos(18).Nom = "Garde-corps pour montage cadre 300cm "
matos(18).poids = 11.8
matos(19).Nom = "Lisses renforcées avec fer en T 150 cm "
matos(19).poids = 7
matos(20).Nom = "Lisse téléscopique 55 à 70 cm "
matos(21).poids = 6.4
matos(22).Nom = "Lisse téléscopique 77 à 100 cm "
matos(22).poids = 8.4
matos(23).Nom = "Lisse téléscopique 100 à 150 cm "
matos(23).poids = 10.4
matos(24).Nom = "Lisse téléscopique 140 à 200 cm "
matos(24).poids = 12.4
matos(25).Nom = "Lisses téléscopique 180 à 300 cm "
matos(25).poids = 14.4
matos(26).Nom = "Lisse téléscopique 250 à 400 cm "
matos(26).poids = 24.6
matos(27).Nom = "Diagonale verticale 200 x 70 cm "
matos(27).poids = 7.1
matos(28).Nom = "Diagonale verticale 200 x 100 cm "
matos(29).poids = 7.5
matos(30).Nom = "Diagonale verticale 200 x 150 cm "
matos(30).poids = 8.4
matos(31).Nom = "Diagonale verticale 200 x 200 cm"
matos(31).poids = 9.2
matos(32).Nom = "Diagonale verticale 200 x 250 cm "
matos(32).poids = 10.1
matos(33).Nom = "Diagonale verticale 200 x 300 cm "
matos(33).poids = 10.9
matos(34).Nom = "Diagonale Horizontale 70 x 250 cm "
matos(34).poids = 6.1
matos(35).Nom = "Diagonale Horizontale 70 x 300 cm"
matos(35).poids = 7.3
matos(36).Nom = "Diagonale Horizontale 100 x 250 cm"
matos(36).poids = 10
matos(37).Nom = "Diagonale Horizontale 100 x 300 cm"
matos(37).poids = 12.5
matos(38).Nom = "Diagonale Horizontale 200 x 200 cm"
matos(38).poids = 10.2
matos(39).Nom = "Diagonale Horizontale 200 x 250 cm"
matos(39).poids = 11.4
matos(40).Nom = "Diagonale Horizontale 250 x 250 cm"
matos(40).poids = 12.6
matos(41).Nom = "Diagonale Horizontale 250 x 300 cm"
matos(41).poids = 13.9
matos(42).Nom = "Diagonale Horizontale 300 x 300 cm"
matos(42).poids = 15.3
matos(43).Nom = "Poteaux standard 50 cm"
matos(43).poids = 3.5
matos(44).Nom = "Poteaux standard 100 cm "
matos(44).poids = 5.5
matos(45).Nom = "Poteaux standard 150 cm"
matos(45).poids = 7.8
matos(46).Nom = "Poteaux standard 200 cm "
matos(46).poids = 10.2
matos(47).Nom = "Poteaux standard 300 cm"
matos(47).poids = 14.6
matos(48).Nom = "Poteaux standard 400 cm "
matos(48).poids = 19.1
matos(49).Nom = "Poteaux à manchon amovible 50 cm"
matos(49).poids = 3.5
matos(50).Nom = "Poteaux à manchon amovible 100 cm"
matos(50).poids = 6.4
matos(51).Nom = "Poteaux à manchon amovible 150 cm"
matos(51).poids = 8.5
matos(51).Nom = "Poteaux à Manchon amovible 200 cm "
matos(51).poids = 11
matos(52).Nom = "Cadre 70 x 200 cm"
matos(52).poids = 17.8
matos(53).Nom = "Embase 33 cm "
matos(53).poids = 1.6
matos(54).Nom = "Socles de base 6 cm"
matos(54).poids = 1.1
List1.List(0) = "Articles disponibles"
List2.List(0) = "Articles sélectionnés"
'création de la liste
For i = 1 To UBound(matos)
List1.AddItem matos(i).Nom
Next

End Sub
Public Sub List1_Click()
if List1.listindex>0 then
'envoi l'objet dans le sac
index = index + 1
ReDim Preserve sac(index)

sac(index) = matos(List1.ListIndex)
List2.AddItem sac(index).Nom & " : " & sac(index).poids & " Kg"
Pour_lblTotal
End If
End Sub


Private Sub Clear_Click()
' Réinitialisation de la facture
List2.Clear
List2.AddItem "Articles sélectionnés"
lblTotal.Caption = " Poids total : 0 Kg."
ReDim sac(0)
End Sub

Public Sub Pour_lblTotal()
Dim Total As Single
Total = 0
For i = 0 To UBound(sac)
Total = Total + sac(i).poids
Next
lblTotal.Caption = "Poids total : " & Total & " kg."
End Sub
Avatar
andre
Merci pour ton aide
Ma list1 s'affiche a l'envers exemplesi je clic sur un article qui se
trouve en haut de ma liste1 c'est un article du bas qui s'affiche et si je
clic plusieurs fois sur le meme article
il s'affiche plusieurs fois sur ma list2 et moi je voudrai justement pas
qu'il s'affiche qu'une seule fois ou pas du tout ,Ma list1a le style
Checkbox et si c'est possible pouvoir choisi un quantité
merci pour votre aide
andré
"bayosky" a écrit dans le message de news:

Notre ami andre tapota :

bonjour
Je n'arrive pas a afficher le poids total de mon programe pouvez vous
m'indiquer ou se trouve l'erreur je vous joint la source
andré



En fait j'y ai trouvé plusieurs défauts...
-> les listes commencent à zéro
et le premier terme est systématiquement vide
-> matos(0) n'existe pas
mais certaines boucles utilisaient matos(0)
-> le total ne se faisait pas car
Total n'était pas correctement incrémenté

la variable index ( nom fâcheux) pourrait être virée
puisque c'est Ubound de sac qui sert presque systématiquement

j'ai viré des trucs qui visiblement ne servaient plus
(Objet.Kg et Unité )
j'ai remplacé la sub de "recherche d'objet" par une ligne plus naturelle

J'ai fait qq autres modif ...
il reste des "défauts" ( de mon point de vue )
mais
cela semble fonctionner...

pour pouvoir avoir plusieurs objets identiques dans le sac,
il faudrait ajouter un tableau Effectif( xx)
ajouter cet effectif en bout de ligne dans list2 ( dans list1.click )
en tenir compte dans le calcul du poids total

Mais pour que la liste des trucs choisis se mette correctement dans
l'ordre il faudra modifier la structure globale ...
-> pour chaque élément de matos
on ajoute une info donnant l'effectif ( 0 veut dire pas sélectionné)
ainsi, sac ne sert plus à rien
quand qqchose change, list2 est entièrement vidée et reconstruite...
cela me semble plus clair et plus facile à gérer...



A+

HB
----------------------------------------------------------------
Private Type Objet
Nom As String
poids As Single
End Type
Private matos() As Objet
Private sac() As Objet
Dim index As Integer

Private Sub cmdQuitter_Click()
End
End Sub

Public Sub Form_Load()
'remplissage de la liste des objets
ReDim matos(54)
index = 0
lblTotal.Caption = " Poids total : 0 Kg."

matos(1).Nom = "socles Orientable 55 cm"
matos(1).poids = 5
matos(2).Nom = "Verin standard 30 cm"
matos(2).poids = 2.2
matos(3).Nom = "Verin standard 50 cm"
matos(3).poids = 2.9
matos(4).Nom = "Verin standard 90 cm"
matos(4).poids = 3.2
matos(5).Nom = "Verin standard 110 cm"
matos(5).poids = 5.2
matos(6).Nom = "Lisse standars 30 cm "
matos(6).poids = 1.9
matos(7).Nom = "Lisse standard 40 cm "
matos(7).poids = 2.2
matos(8).Nom = "Lisse standard 50 cm "
matos(8).poids = 2.5
matos(9).Nom = "Lisse standard 70 cm "
matos(9).poids = 3.2
matos(10).Nom = "Lisse standard 74 cm "
matos(10).poids = 3.4
matos(11).Nom = "Lisse standard 100 cm "
matos(11).poids = 4.6
matos(12).Nom = "Lisse standard 150 cm "
matos(12).poids = 6.3
matos(13).Nom = "Lisse standard 200 cm "
matos(13).poids = 8.2
matos(14).Nom = " Lisse standard 250 cm "
matos(14).poids = 10
matos(15).Nom = "Lisse standard 300 cm "
matos(15).poids = 12
matos(16).Nom = "Garde-corps pour montage cadre 70 cm"
matos(16).poids = 5.3
matos(17).Nom = "Garde-corps pour montage cardre 250 cm "
matos(17).poids = 9.7
matos(18).Nom = "Garde-corps pour montage cadre 300cm "
matos(18).poids = 11.8
matos(19).Nom = "Lisses renforcées avec fer en T 150 cm "
matos(19).poids = 7
matos(20).Nom = "Lisse téléscopique 55 à 70 cm "
matos(21).poids = 6.4
matos(22).Nom = "Lisse téléscopique 77 à 100 cm "
matos(22).poids = 8.4
matos(23).Nom = "Lisse téléscopique 100 à 150 cm "
matos(23).poids = 10.4
matos(24).Nom = "Lisse téléscopique 140 à 200 cm "
matos(24).poids = 12.4
matos(25).Nom = "Lisses téléscopique 180 à 300 cm "
matos(25).poids = 14.4
matos(26).Nom = "Lisse téléscopique 250 à 400 cm "
matos(26).poids = 24.6
matos(27).Nom = "Diagonale verticale 200 x 70 cm "
matos(27).poids = 7.1
matos(28).Nom = "Diagonale verticale 200 x 100 cm "
matos(29).poids = 7.5
matos(30).Nom = "Diagonale verticale 200 x 150 cm "
matos(30).poids = 8.4
matos(31).Nom = "Diagonale verticale 200 x 200 cm"
matos(31).poids = 9.2
matos(32).Nom = "Diagonale verticale 200 x 250 cm "
matos(32).poids = 10.1
matos(33).Nom = "Diagonale verticale 200 x 300 cm "
matos(33).poids = 10.9
matos(34).Nom = "Diagonale Horizontale 70 x 250 cm "
matos(34).poids = 6.1
matos(35).Nom = "Diagonale Horizontale 70 x 300 cm"
matos(35).poids = 7.3
matos(36).Nom = "Diagonale Horizontale 100 x 250 cm"
matos(36).poids = 10
matos(37).Nom = "Diagonale Horizontale 100 x 300 cm"
matos(37).poids = 12.5
matos(38).Nom = "Diagonale Horizontale 200 x 200 cm"
matos(38).poids = 10.2
matos(39).Nom = "Diagonale Horizontale 200 x 250 cm"
matos(39).poids = 11.4
matos(40).Nom = "Diagonale Horizontale 250 x 250 cm"
matos(40).poids = 12.6
matos(41).Nom = "Diagonale Horizontale 250 x 300 cm"
matos(41).poids = 13.9
matos(42).Nom = "Diagonale Horizontale 300 x 300 cm"
matos(42).poids = 15.3
matos(43).Nom = "Poteaux standard 50 cm"
matos(43).poids = 3.5
matos(44).Nom = "Poteaux standard 100 cm "
matos(44).poids = 5.5
matos(45).Nom = "Poteaux standard 150 cm"
matos(45).poids = 7.8
matos(46).Nom = "Poteaux standard 200 cm "
matos(46).poids = 10.2
matos(47).Nom = "Poteaux standard 300 cm"
matos(47).poids = 14.6
matos(48).Nom = "Poteaux standard 400 cm "
matos(48).poids = 19.1
matos(49).Nom = "Poteaux à manchon amovible 50 cm"
matos(49).poids = 3.5
matos(50).Nom = "Poteaux à manchon amovible 100 cm"
matos(50).poids = 6.4
matos(51).Nom = "Poteaux à manchon amovible 150 cm"
matos(51).poids = 8.5
matos(51).Nom = "Poteaux à Manchon amovible 200 cm "
matos(51).poids = 11
matos(52).Nom = "Cadre 70 x 200 cm"
matos(52).poids = 17.8
matos(53).Nom = "Embase 33 cm "
matos(53).poids = 1.6
matos(54).Nom = "Socles de base 6 cm"
matos(54).poids = 1.1
List1.List(0) = "Articles disponibles"
List2.List(0) = "Articles sélectionnés"
'création de la liste
For i = 1 To UBound(matos)
List1.AddItem matos(i).Nom
Next

End Sub
Public Sub List1_Click()
if List1.listindex>0 then
'envoi l'objet dans le sac
index = index + 1
ReDim Preserve sac(index)

sac(index) = matos(List1.ListIndex)
List2.AddItem sac(index).Nom & " : " & sac(index).poids & " Kg"
Pour_lblTotal
End If
End Sub


Private Sub Clear_Click()
' Réinitialisation de la facture
List2.Clear
List2.AddItem "Articles sélectionnés"
lblTotal.Caption = " Poids total : 0 Kg."
ReDim sac(0)
End Sub

Public Sub Pour_lblTotal()
Dim Total As Single
Total = 0
For i = 0 To UBound(sac)
Total = Total + sac(i).poids
Next
lblTotal.Caption = "Poids total : " & Total & " kg."
End Sub



Avatar
X
Bonsoir,
J'ai fait un truc dans ce principe
http://irolog.free.fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr
(Liste de courses...)
On glisse d'une liste à l'autre avec au milieu un demande de quantité (drag
and drop): une autre solution...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr
Mail
http://irolog.free.fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"andre" a écrit dans le message de news:

Merci pour ton aide
Ma list1 s'affiche a l'envers exemplesi je clic sur un article qui se
trouve en haut de ma liste1 c'est un article du bas qui s'affiche et si je
clic plusieurs fois sur le meme article
il s'affiche plusieurs fois sur ma list2 et moi je voudrai justement pas
qu'il s'affiche qu'une seule fois ou pas du tout ,Ma list1a le style
Checkbox et si c'est possible pouvoir choisi un quantité
merci pour votre aide
andré
"bayosky" a écrit dans le message de news:

Notre ami andre tapota :

bonjour
Je n'arrive pas a afficher le poids total de mon programe pouvez vous
m'indiquer ou se trouve l'erreur je vous joint la source
andré



En fait j'y ai trouvé plusieurs défauts...
-> les listes commencent à zéro
et le premier terme est systématiquement vide
-> matos(0) n'existe pas
mais certaines boucles utilisaient matos(0)
-> le total ne se faisait pas car
Total n'était pas correctement incrémenté

la variable index ( nom fâcheux) pourrait être virée
puisque c'est Ubound de sac qui sert presque systématiquement

j'ai viré des trucs qui visiblement ne servaient plus
(Objet.Kg et Unité )
j'ai remplacé la sub de "recherche d'objet" par une ligne plus naturelle

J'ai fait qq autres modif ...
il reste des "défauts" ( de mon point de vue )
mais
cela semble fonctionner...

pour pouvoir avoir plusieurs objets identiques dans le sac,
il faudrait ajouter un tableau Effectif( xx)
ajouter cet effectif en bout de ligne dans list2 ( dans list1.click )
en tenir compte dans le calcul du poids total

Mais pour que la liste des trucs choisis se mette correctement dans
l'ordre il faudra modifier la structure globale ...
-> pour chaque élément de matos
on ajoute une info donnant l'effectif ( 0 veut dire pas sélectionné)
ainsi, sac ne sert plus à rien
quand qqchose change, list2 est entièrement vidée et reconstruite...
cela me semble plus clair et plus facile à gérer...



A+

HB
----------------------------------------------------------------
Private Type Objet
Nom As String
poids As Single
End Type
Private matos() As Objet
Private sac() As Objet
Dim index As Integer

Private Sub cmdQuitter_Click()
End
End Sub

Public Sub Form_Load()
'remplissage de la liste des objets
ReDim matos(54)
index = 0
lblTotal.Caption = " Poids total : 0 Kg."

matos(1).Nom = "socles Orientable 55 cm"
matos(1).poids = 5
matos(2).Nom = "Verin standard 30 cm"
matos(2).poids = 2.2
matos(3).Nom = "Verin standard 50 cm"
matos(3).poids = 2.9
matos(4).Nom = "Verin standard 90 cm"
matos(4).poids = 3.2
matos(5).Nom = "Verin standard 110 cm"
matos(5).poids = 5.2
matos(6).Nom = "Lisse standars 30 cm "
matos(6).poids = 1.9
matos(7).Nom = "Lisse standard 40 cm "
matos(7).poids = 2.2
matos(8).Nom = "Lisse standard 50 cm "
matos(8).poids = 2.5
matos(9).Nom = "Lisse standard 70 cm "
matos(9).poids = 3.2
matos(10).Nom = "Lisse standard 74 cm "
matos(10).poids = 3.4
matos(11).Nom = "Lisse standard 100 cm "
matos(11).poids = 4.6
matos(12).Nom = "Lisse standard 150 cm "
matos(12).poids = 6.3
matos(13).Nom = "Lisse standard 200 cm "
matos(13).poids = 8.2
matos(14).Nom = " Lisse standard 250 cm "
matos(14).poids = 10
matos(15).Nom = "Lisse standard 300 cm "
matos(15).poids = 12
matos(16).Nom = "Garde-corps pour montage cadre 70 cm"
matos(16).poids = 5.3
matos(17).Nom = "Garde-corps pour montage cardre 250 cm "
matos(17).poids = 9.7
matos(18).Nom = "Garde-corps pour montage cadre 300cm "
matos(18).poids = 11.8
matos(19).Nom = "Lisses renforcées avec fer en T 150 cm "
matos(19).poids = 7
matos(20).Nom = "Lisse téléscopique 55 à 70 cm "
matos(21).poids = 6.4
matos(22).Nom = "Lisse téléscopique 77 à 100 cm "
matos(22).poids = 8.4
matos(23).Nom = "Lisse téléscopique 100 à 150 cm "
matos(23).poids = 10.4
matos(24).Nom = "Lisse téléscopique 140 à 200 cm "
matos(24).poids = 12.4
matos(25).Nom = "Lisses téléscopique 180 à 300 cm "
matos(25).poids = 14.4
matos(26).Nom = "Lisse téléscopique 250 à 400 cm "
matos(26).poids = 24.6
matos(27).Nom = "Diagonale verticale 200 x 70 cm "
matos(27).poids = 7.1
matos(28).Nom = "Diagonale verticale 200 x 100 cm "
matos(29).poids = 7.5
matos(30).Nom = "Diagonale verticale 200 x 150 cm "
matos(30).poids = 8.4
matos(31).Nom = "Diagonale verticale 200 x 200 cm"
matos(31).poids = 9.2
matos(32).Nom = "Diagonale verticale 200 x 250 cm "
matos(32).poids = 10.1
matos(33).Nom = "Diagonale verticale 200 x 300 cm "
matos(33).poids = 10.9
matos(34).Nom = "Diagonale Horizontale 70 x 250 cm "
matos(34).poids = 6.1
matos(35).Nom = "Diagonale Horizontale 70 x 300 cm"
matos(35).poids = 7.3
matos(36).Nom = "Diagonale Horizontale 100 x 250 cm"
matos(36).poids = 10
matos(37).Nom = "Diagonale Horizontale 100 x 300 cm"
matos(37).poids = 12.5
matos(38).Nom = "Diagonale Horizontale 200 x 200 cm"
matos(38).poids = 10.2
matos(39).Nom = "Diagonale Horizontale 200 x 250 cm"
matos(39).poids = 11.4
matos(40).Nom = "Diagonale Horizontale 250 x 250 cm"
matos(40).poids = 12.6
matos(41).Nom = "Diagonale Horizontale 250 x 300 cm"
matos(41).poids = 13.9
matos(42).Nom = "Diagonale Horizontale 300 x 300 cm"
matos(42).poids = 15.3
matos(43).Nom = "Poteaux standard 50 cm"
matos(43).poids = 3.5
matos(44).Nom = "Poteaux standard 100 cm "
matos(44).poids = 5.5
matos(45).Nom = "Poteaux standard 150 cm"
matos(45).poids = 7.8
matos(46).Nom = "Poteaux standard 200 cm "
matos(46).poids = 10.2
matos(47).Nom = "Poteaux standard 300 cm"
matos(47).poids = 14.6
matos(48).Nom = "Poteaux standard 400 cm "
matos(48).poids = 19.1
matos(49).Nom = "Poteaux à manchon amovible 50 cm"
matos(49).poids = 3.5
matos(50).Nom = "Poteaux à manchon amovible 100 cm"
matos(50).poids = 6.4
matos(51).Nom = "Poteaux à manchon amovible 150 cm"
matos(51).poids = 8.5
matos(51).Nom = "Poteaux à Manchon amovible 200 cm "
matos(51).poids = 11
matos(52).Nom = "Cadre 70 x 200 cm"
matos(52).poids = 17.8
matos(53).Nom = "Embase 33 cm "
matos(53).poids = 1.6
matos(54).Nom = "Socles de base 6 cm"
matos(54).poids = 1.1
List1.List(0) = "Articles disponibles"
List2.List(0) = "Articles sélectionnés"
'création de la liste
For i = 1 To UBound(matos)
List1.AddItem matos(i).Nom
Next

End Sub
Public Sub List1_Click()
if List1.listindex>0 then
'envoi l'objet dans le sac
index = index + 1
ReDim Preserve sac(index)

sac(index) = matos(List1.ListIndex)
List2.AddItem sac(index).Nom & " : " & sac(index).poids & " Kg"
Pour_lblTotal
End If
End Sub


Private Sub Clear_Click()
' Réinitialisation de la facture
List2.Clear
List2.AddItem "Articles sélectionnés"
lblTotal.Caption = " Poids total : 0 Kg."
ReDim sac(0)
End Sub

Public Sub Pour_lblTotal()
Dim Total As Single
Total = 0
For i = 0 To UBound(sac)
Total = Total + sac(i).poids
Next
lblTotal.Caption = "Poids total : " & Total & " kg."
End Sub







Avatar
andre
Re

J'au reussi avec la list1 maintenant elles s'affichent corectement ,pour le
poids c'est ok aussi par contre il me reste encore le probleme avec checkbox
sélectioner ou deselectionner
"andre" a écrit dans le message de news:

Merci pour ton aide
Ma list1 s'affiche a l'envers exemplesi je clic sur un article qui se
trouve en haut de ma liste1 c'est un article du bas qui s'affiche et si je
clic plusieurs fois sur le meme article
il s'affiche plusieurs fois sur ma list2 et moi je voudrai justement pas
qu'il s'affiche qu'une seule fois ou pas du tout ,Ma list1a le style
Checkbox et si c'est possible pouvoir choisi un quantité
merci pour votre aide
andré
"bayosky" a écrit dans le message de news:

Notre ami andre tapota :

bonjour
Je n'arrive pas a afficher le poids total de mon programe pouvez vous
m'indiquer ou se trouve l'erreur je vous joint la source
andré



En fait j'y ai trouvé plusieurs défauts...
-> les listes commencent à zéro
et le premier terme est systématiquement vide
-> matos(0) n'existe pas
mais certaines boucles utilisaient matos(0)
-> le total ne se faisait pas car
Total n'était pas correctement incrémenté

la variable index ( nom fâcheux) pourrait être virée
puisque c'est Ubound de sac qui sert presque systématiquement

j'ai viré des trucs qui visiblement ne servaient plus
(Objet.Kg et Unité )
j'ai remplacé la sub de "recherche d'objet" par une ligne plus naturelle

J'ai fait qq autres modif ...
il reste des "défauts" ( de mon point de vue )
mais
cela semble fonctionner...

pour pouvoir avoir plusieurs objets identiques dans le sac,
il faudrait ajouter un tableau Effectif( xx)
ajouter cet effectif en bout de ligne dans list2 ( dans list1.click )
en tenir compte dans le calcul du poids total

Mais pour que la liste des trucs choisis se mette correctement dans
l'ordre il faudra modifier la structure globale ...
-> pour chaque élément de matos
on ajoute une info donnant l'effectif ( 0 veut dire pas sélectionné)
ainsi, sac ne sert plus à rien
quand qqchose change, list2 est entièrement vidée et reconstruite...
cela me semble plus clair et plus facile à gérer...



A+

HB
----------------------------------------------------------------
Private Type Objet
Nom As String
poids As Single
End Type
Private matos() As Objet
Private sac() As Objet
Dim index As Integer

Private Sub cmdQuitter_Click()
End
End Sub

Public Sub Form_Load()
'remplissage de la liste des objets
ReDim matos(54)
index = 0
lblTotal.Caption = " Poids total : 0 Kg."

matos(1).Nom = "socles Orientable 55 cm"
matos(1).poids = 5
matos(2).Nom = "Verin standard 30 cm"
matos(2).poids = 2.2
matos(3).Nom = "Verin standard 50 cm"
matos(3).poids = 2.9
matos(4).Nom = "Verin standard 90 cm"
matos(4).poids = 3.2
matos(5).Nom = "Verin standard 110 cm"
matos(5).poids = 5.2
matos(6).Nom = "Lisse standars 30 cm "
matos(6).poids = 1.9
matos(7).Nom = "Lisse standard 40 cm "
matos(7).poids = 2.2
matos(8).Nom = "Lisse standard 50 cm "
matos(8).poids = 2.5
matos(9).Nom = "Lisse standard 70 cm "
matos(9).poids = 3.2
matos(10).Nom = "Lisse standard 74 cm "
matos(10).poids = 3.4
matos(11).Nom = "Lisse standard 100 cm "
matos(11).poids = 4.6
matos(12).Nom = "Lisse standard 150 cm "
matos(12).poids = 6.3
matos(13).Nom = "Lisse standard 200 cm "
matos(13).poids = 8.2
matos(14).Nom = " Lisse standard 250 cm "
matos(14).poids = 10
matos(15).Nom = "Lisse standard 300 cm "
matos(15).poids = 12
matos(16).Nom = "Garde-corps pour montage cadre 70 cm"
matos(16).poids = 5.3
matos(17).Nom = "Garde-corps pour montage cardre 250 cm "
matos(17).poids = 9.7
matos(18).Nom = "Garde-corps pour montage cadre 300cm "
matos(18).poids = 11.8
matos(19).Nom = "Lisses renforcées avec fer en T 150 cm "
matos(19).poids = 7
matos(20).Nom = "Lisse téléscopique 55 à 70 cm "
matos(21).poids = 6.4
matos(22).Nom = "Lisse téléscopique 77 à 100 cm "
matos(22).poids = 8.4
matos(23).Nom = "Lisse téléscopique 100 à 150 cm "
matos(23).poids = 10.4
matos(24).Nom = "Lisse téléscopique 140 à 200 cm "
matos(24).poids = 12.4
matos(25).Nom = "Lisses téléscopique 180 à 300 cm "
matos(25).poids = 14.4
matos(26).Nom = "Lisse téléscopique 250 à 400 cm "
matos(26).poids = 24.6
matos(27).Nom = "Diagonale verticale 200 x 70 cm "
matos(27).poids = 7.1
matos(28).Nom = "Diagonale verticale 200 x 100 cm "
matos(29).poids = 7.5
matos(30).Nom = "Diagonale verticale 200 x 150 cm "
matos(30).poids = 8.4
matos(31).Nom = "Diagonale verticale 200 x 200 cm"
matos(31).poids = 9.2
matos(32).Nom = "Diagonale verticale 200 x 250 cm "
matos(32).poids = 10.1
matos(33).Nom = "Diagonale verticale 200 x 300 cm "
matos(33).poids = 10.9
matos(34).Nom = "Diagonale Horizontale 70 x 250 cm "
matos(34).poids = 6.1
matos(35).Nom = "Diagonale Horizontale 70 x 300 cm"
matos(35).poids = 7.3
matos(36).Nom = "Diagonale Horizontale 100 x 250 cm"
matos(36).poids = 10
matos(37).Nom = "Diagonale Horizontale 100 x 300 cm"
matos(37).poids = 12.5
matos(38).Nom = "Diagonale Horizontale 200 x 200 cm"
matos(38).poids = 10.2
matos(39).Nom = "Diagonale Horizontale 200 x 250 cm"
matos(39).poids = 11.4
matos(40).Nom = "Diagonale Horizontale 250 x 250 cm"
matos(40).poids = 12.6
matos(41).Nom = "Diagonale Horizontale 250 x 300 cm"
matos(41).poids = 13.9
matos(42).Nom = "Diagonale Horizontale 300 x 300 cm"
matos(42).poids = 15.3
matos(43).Nom = "Poteaux standard 50 cm"
matos(43).poids = 3.5
matos(44).Nom = "Poteaux standard 100 cm "
matos(44).poids = 5.5
matos(45).Nom = "Poteaux standard 150 cm"
matos(45).poids = 7.8
matos(46).Nom = "Poteaux standard 200 cm "
matos(46).poids = 10.2
matos(47).Nom = "Poteaux standard 300 cm"
matos(47).poids = 14.6
matos(48).Nom = "Poteaux standard 400 cm "
matos(48).poids = 19.1
matos(49).Nom = "Poteaux à manchon amovible 50 cm"
matos(49).poids = 3.5
matos(50).Nom = "Poteaux à manchon amovible 100 cm"
matos(50).poids = 6.4
matos(51).Nom = "Poteaux à manchon amovible 150 cm"
matos(51).poids = 8.5
matos(51).Nom = "Poteaux à Manchon amovible 200 cm "
matos(51).poids = 11
matos(52).Nom = "Cadre 70 x 200 cm"
matos(52).poids = 17.8
matos(53).Nom = "Embase 33 cm "
matos(53).poids = 1.6
matos(54).Nom = "Socles de base 6 cm"
matos(54).poids = 1.1
List1.List(0) = "Articles disponibles"
List2.List(0) = "Articles sélectionnés"
'création de la liste
For i = 1 To UBound(matos)
List1.AddItem matos(i).Nom
Next

End Sub
Public Sub List1_Click()
if List1.listindex>0 then
'envoi l'objet dans le sac
index = index + 1
ReDim Preserve sac(index)

sac(index) = matos(List1.ListIndex)
List2.AddItem sac(index).Nom & " : " & sac(index).poids & " Kg"
Pour_lblTotal
End If
End Sub


Private Sub Clear_Click()
' Réinitialisation de la facture
List2.Clear
List2.AddItem "Articles sélectionnés"
lblTotal.Caption = " Poids total : 0 Kg."
ReDim sac(0)
End Sub

Public Sub Pour_lblTotal()
Dim Total As Single
Total = 0
For i = 0 To UBound(sac)
Total = Total + sac(i).poids
Next
lblTotal.Caption = "Poids total : " & Total & " kg."
End Sub







Avatar
bayosky
Notre ami andre tapota :

Re

J'au reussi avec la list1 maintenant elles s'affichent corectement
,pour le poids c'est ok aussi par contre il me reste encore le
probleme avec checkbox sélectioner ou deselectionner



salut,

bon :

1. Tu ajoutes à la variable matos une propriété
Effectif as integer
et, dans la longue initialisation, tu fais une boucle qui met ses
valeurs à 0

2. Tu modifies ta procédure click sur list1 de façon que
le click gauche sur un élément augmente l'effectif
2bis : tu ajoute une procédure dblclick
le double click met l'effectif à zéro
2 ter : ( si tu peux détecter le click droit,
utilise le pour diminuer l'effectif )

( il faut pouvoir modifier un élément, non )

3. La mise à jour de list2 devient
une procédure à part
appelé par les divers cas de "list1click"
et par clear.click

a. vide list2 et met poidstotal à zéro
b. met la ligne "Articles sélectionnés : "
c. une boucle sur matos(i) :
si matos(i).Effectif> 0
ça ajoute dans la liste la ligne
le nom & le poids unitaire & la quantité
( tu peux même utiliser vbtab pour que ce soit
plus beau )
ça ajoute effectif FOIS poids à poidstotal
d. ça met à jour le label poids_Total
e. tu peux fignoler l'élément list2(0)
pour avoir "Article sélectionné : "
ou "Aucun article sélectionné."
selon les cas

4. Clear.click met les effectif à zéro et lance la mise à jour de
list2

"sac()" ne sert plus à rien, l'information sur l'état exact
est dans les matos(i).effectif
"index" non plus...

voilà, bon courage....

HB