COMMENT ARRIVER A FAIRE UNE LISTEBOX DYNAMIQUE CAD DE TAILLE VARIABLE

Résolu
zmoha40 Messages postés 62 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 juin 2012 - 11 oct. 2005 à 01:24
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 13 oct. 2005 à 02:39
BONJOUR
J'utilise un programme de facturation . dans l'edition de la facture j'ai les champs: QTE , DESIGNATION, Prix HT , TX TVA et NET
pour chaque champs j'ai associé une listbox dans une FORM

Je dois avoir une ligne total sur le prix HT et le Net à la fin de l'insertion de toutes les lignes de la facture en question.
Ce que je veux c'est si j'ai une seule ligne je fais les totaux juste apres cette premiere ligne et si j'ai deux lignes je fais les totaux apres les deux lignes et ainsi de suite de sorte que le ligne totale apparait juste apres le dernier enregistrement .
Le facture ne doit pas occuper toute la page à moins que le nombre de lignes de la facture est egale au nombre de ligne de la page.

Je dois faire quoi pour pallier à ce probleme?

Merci par avance

6 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
11 oct. 2005 à 03:28
pas de mal
bonne soirée
PCPT ~ [AFCK]
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
11 oct. 2005 à 02:58
salut,

voici un exemple, dans le principe....
2 boutons, une listbox [VB6]


Option Explicit
'
Private Type tTab
tLib As String
tPrix As Double
End Type
'
Dim Tab1(2) As tTab
Dim Tab2(8) As tTab
'
'
Private Sub Form_Load()
'init tableaux
Tab1(0).tLib = "t1 pêche"
Tab1(1).tLib = "t1 banane"
Tab1(2).tLib = "t1 tomate"
Tab1(0).tPrix = 5.5
Tab1(1).tPrix = 6.3
Tab1(2).tPrix = 2.52

Tab2(0).tLib = "t2 ananas"
Tab2(1).tLib = "t2 poire"
Tab2(2).tLib = "t2 salade"
Tab2(3).tLib = "t2 poisson"
Tab2(4).tLib = "t2 limace"
Tab2(5).tLib = "t2 poulet"
Tab2(6).tLib = "t2 chausette"
Tab2(7).tLib = "t2 vautour"
Tab2(8).tLib = "t2 chocolat"

Dim i As Integer For i 0 To 8: Tab2(i).tPrix i * 1.54: Next i

Call ReInitListBox
End Sub
'
'
Private Sub ReInitListBox()
List1.Height = 375
List1.Width = 2000
List1.Clear
End Sub
'
'
Private Sub Command1_Click()
Dim i As Integer, Somme As Double
Call ReInitListBox
Somme = 0

For i = 0 To UBound (Tab1)
List1.AddItem Tab1(i).tLib & " " & CStr(Tab1(i).tPrix) & " Frs"
Somme = Somme + Tab1(i).tPrix
Next i

List1.AddItem "----------------------"
List1.AddItem "Total " & Somme & " Frs"

List1.Height = 220 * ( UBound (Tab1) + 3)
' [2] lignes en + du contenu du tableau. contenu = ubound + [1]
End Sub
'
'
Private Sub Command2_Click()
Dim i As Integer, Somme As Double
Call ReInitListBox
Somme = 0

For i = 0 To UBound (Tab2)
List1.AddItem Tab2(i).tLib & " " & CStr(Tab2(i).tPrix) & " Frs"
Somme = Somme + Tab2(i).tPrix
Next i

List1.AddItem "----------------------"
List1.AddItem "Total " & Somme & " Frs"

List1.Height = 220 * (UBound(Tab2) + 3)
End Sub



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
11 oct. 2005 à 03:11
Salut.
Si la ligne "total" se trouve dans la ListBox, alors, il ne te suffit que de compter le nombre de ligne de la ListBox (avec Count), et, tu adaptes la taille en fonction, c'est a dire, si tu a 3 ligne, tu fais :
MaListe.Height = 3 x 500 (Nbre_Ligne x 500),
(si tu utilise de grand caractère, multiplies par 600 ou plus. test et tu veras le nombre approprié)

Maintenant, si le ligne "Total" n'est pas dans la ListeBox, tu fais comme la haut, mais la, en plus, il te faut placer la ligne Total. je présume que le total est dans un Label. je l'appel LblTotal. Tu ferras donc:

LblTotal.Top = MaListe.Top + MaListe.Height + 200

ce qui veut dire que la ligne Total se placera en dessous de MaListe + 200

j'espère t'avoir aidé. si j'ai mal compri ce que tu demande, repose ta question.
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
11 oct. 2005 à 03:16
PCPT, tu m'as encore devancé. cela fait 2 fois. ton code est bien détaillé. je n'avai pas vu sa question comme ca. pas grave. allé, bonne soiré.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zmoha40 Messages postés 62 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 juin 2012
13 oct. 2005 à 01:39
Je pu résoudre mon problème grace à votre aide
Merci à vous les amis
Toutefois, j'ai une simple question
COMMENT puis je faire pour que les prix de la listBox soient ajustés à droite?
de sorte que les chiffres soient bien justifiés les uns sur les autres dans
la facture
Merci encore
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
13 oct. 2005 à 02:39
salut,
pour ce faire, il va d'abord falloir mettre une typo qui ne varie pas en fonctione de la lettre saisie
cad ....
"mnop" prend plus de place que
"ijkl" ....

enfin, selon la typo ;)
ensuite, on calcule le nombre d'espace à ajouter pour qu'on ait toujours autant de carac par ligne.
sans oublier de bien vérifier que "1francs dix" soit écrit 1,10 et non 1,1
(mais çà, à toit de le faire)

et voilà. le même exemple, mais un seul bouton


Option Explicit
'
Private Type tTab
tLib As String
tPrix As Double
End Type
'
Dim Tab2(8) As tTab
'
'
Private Sub Form_Load()
'init tableau
Tab2(0).tLib = "t2 ananas"
Tab2(1).tLib = "t2 poire"
Tab2(2).tLib = "t2 salade"
Tab2(3).tLib = "t2 poisson"
Tab2(4).tLib = "t2 limace"
Tab2(5).tLib = "t2 poulet"
Tab2(6).tLib = "t2 chausette"
Tab2(7).tLib = "t2 vautour"
Tab2(8).tLib = "t2 chocolat"

Dim i As Integer For i 0 To 8: Tab2(i).tPrix i * 1.54 + 0.01: Next i

List1.Font = "Courier New"
List1.Height = 375
List1.Width = 3000
List1.Clear
End Sub
'
'
Private Sub Command1_Click()
Dim i As Integer, Somme As Double, NbCaracs As Integer
Somme = 0

For i = 0 To UBound (Tab2)
NbCaracs = Len(Tab2(i).tLib) + Len(CStr(Tab2(i).tPrix)) + 4 '<- " Frs"
List1.AddItem Tab2(i).tLib & Space(26 - NbCaracs) & CStr(Tab2(i).tPrix) & " Frs"
Somme = Somme + Tab2(i).tPrix
Next i

List1.AddItem "---------------------------"
NbCaracs = 5 + 4 + Len (CStr(Somme))
List1.AddItem "Total" & Space(26 - NbCaracs) & Somme & " Frs"

List1.Height = 220 * (UBound(Tab2) + 3)
End Sub



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT
0