Listes avec les listes box...Débutante, besoin d'aide!!!!

Acidkepler Messages postés 38 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 21 mars 2006 - 3 déc. 2004 à 02:08
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010 - 3 déc. 2004 à 10:20
Bonjour, je débute en visual basic 6.0 et j'ai besoin de votre aide:

il y a un liste box, dans ce liste box, je peut sélectionner un nom d'une personne, inclu du numéro d'assurance social.

Avec un texte box, je peut entrer, à côté du nom et du numéro d'ass social, le nombre d'heure de travail que j'y inscrit et ce, pour chaque nom du liste box en cliquand sur un bouton enregistré.

Comment je peut faire ça???

S'il vous plait, aidez moi!!!

Merci à l'avance,

6 réponses

barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
3 déc. 2004 à 02:23
ok, mais apres, tu veux pouvoir modifier encore ce nombre d'heures ou pas?
si modification possible, que fait on de l'ancienne valeur?
ou veux tu stocker ces infos? dans quel type de fichier?
lorsque tu reclic sur la personne de ta liste, le nombre d'heures doit il apparaitre

autrement, ca me parait faisable...
0
Acidkepler Messages postés 38 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 21 mars 2006
3 déc. 2004 à 02:26
Je veux stokker les info dans un fichier texte, je veux pouvoir la modifier dans le sens que si je remet une heure de cette personne, l'ancienne vas s'additionner à l'autre, et quand je clique, je veux les voirs s'afficher

Est-ce possible? si oui, comment

Merci à l'avance
0
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
3 déc. 2004 à 02:50
c'est qu'un petit apercu , je ferai le reste, t'inkiete, mais pour l'instant, histoire de voir si on s'est bien compris
ecrit un fichier texte dont la direction sera c:\liste.txt
fais une form avec une listbox, appelée List1
un textbox appelé Text1
un commandbutton appelé Command1

ensuite : clique droit sur ta form puis code
tu tape:

Private Sub Form_Initialize()
Dim lignedetexte
Open "c:\liste.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, lignedetexte
List1.AddItem lignedetexte
Loop
Close #1
End Sub

ca te donne un tout petit apercu
0
Acidkepler Messages postés 38 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 21 mars 2006
3 déc. 2004 à 03:00
Oui on c'est bien compris
0

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

Posez votre question
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
3 déc. 2004 à 09:17
j'ai quasiment terminé, tu as un mail auquel je peux t'envoyer tout ca??
sinon, je peux toujours copier coller la source ici, y aura pas le form, c'est tout...
0
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
3 déc. 2004 à 10:20
terminé, je balance le code, c'est pas très chouette, mais je débute et j'ai speedé...

faut une form avec 2 command button ( 1 et 2)
1 textbox (1)
1 listbox (1)
5 label (1 à 5)
--> 1 pour le textbox (1)
--> 1 au dessus du command button 1 (2)
--> 1 au dessous du command button 1 (3)
--> 1 au dessus du command button 2 (4)
--> 1 au dessous du command button 2 (5)

le code, arcaic mais qui marche, a toi de l'améliorer... :

'toute cette premiere partie est de renfield (sur le site), elle sert à empêcher l'utilisateur de taper autre chose que des chiffres dans le textbox
' chiffres aussi négatifs d'ailleurs, donc intéressant pour ton application

Option Explicit

'# Déclaration de quelques API
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private texttotal As String ' juste ce petit rajout de ma part pour gérer la variable contenant tout le texte modifié

Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16

' a partir de la, c'est de moi, c'est tout de suite moins bien...

Private Sub Command2_Click()

Dim objetcre, objetc
Set objetcre = CreateObject("Scripting.FileSystemObject") ' cré objet
Set objetc = objetcre.CreateTextfile("C:\liste.txt", True) ' recrée le fichier liste.txt, écrase l'autre
objetc.write texttotal ' écrit les nouvelles données dans le fichier
objetc.Close 'ferme le fichier

End Sub

Private Sub Form_Load()
MakeNumericOnly Text1
End Sub

Private Sub MakeNumericOnly(Obj As Object)
'# Cette variable contiendra le Style de notre Controle :
'# il s'agit d'une combinaison de differentes valeurs...
Dim Style As Long

'# On récupère le style actuel
Style = GetWindowLong(Obj.hwnd, GWL_STYLE)

'# On ajoute le style ES_NUMBER...
Style = Style Or ES_NUMBER

'# et on replace le tout dans le Controle
SetWindowLong Obj.hwnd, GWL_STYLE, Style
End Sub

Private Sub Command1_Click() ' évenement clic sur le bouton valider

If Left(Right(List1.Text, 22), 11) = "(changé-le-" Then 'localiser à 22 en partant de la droite puis à 11 du résultat en partant de la gauche
MsgBox "Client déjà traité durant cette session", vbOKOnly, "Message d'erreur" ' affiche le message d'erreur
Else 'sinon

Dim modif, enlever, cycles, nombreheures, nbchiffre, nombreheurestotal, avant, longueur, ligne
cycles = 1 'initialisation du nombre de cycles, c'est à dire le nombre de lettres situées à droite jusqu'à obtention de l'espace
enlever = 0 ' ce qu'il faudra enlever à la ligne avant d'ajouter la somme des heures

Do While Left(enlever, 1) <> " " ' boucle tant que l'on a pas obtenu l'espace
enlever = Right(List1.Text, cycles) ' inscription de ce qui est à droite de l'espace dans une variable
cycles = cycles + 1 'incrémentation du nombre de cycles
Loop ' boucle

nbchiffre = cycles - 2 'combien il faut prendre de lettres à droite pour trouver le nombre d'heures
nombreheures = Right(List1.Text, nbchiffre) 'le nombre d'heures déjà inscrits sur le fichier source
longueur = Len(List1.Text) - cycles ' nombre de caractères pour aller de la gauche jusqu'à l'espace
avant = Left(List1.Text, longueur) ' tout ce qui est écrit avant l'espace
nombreheurestotal = Int(nombreheures) + Text1.Text 'addition des heures du fichiers source et des heures que l'on souhaite rajouter
modif = avant & " " & nombreheurestotal 'la ligne nouvelle qui devra être inscrite sur le nouveau fichier
ligne = List1.ListIndex 'mémorise le numéro de la ligne en cours du listbox

List1.RemoveItem (ligne) ' efface la ligne en cours du listbox
List1.AddItem modif & "(changé-le-" & Date & ")", ligne ' rajoute la nouvelle ligne à la place de celle qu'il y avait avant et écrit la date

If ligne + 1 <= List1.ListCount - 1 Then ' si on est pas arrivé au bout du listbox
List1.Selected(ligne + 1) = True ' on passe à la ligne suivante
Else ' sinon
ligne = 0
List1.Selected(ligne) = True ' on revient à la première ligne du listbox, des fois qu'elle n'est pas été changée
End If
End If

Text1 = 0 'remise à 0 du nombre de jours à comptabiliser

texttotal = texttotal & modif & vbCrLf ' mise en mèmoire de l'ensemble des modifications

End Sub

Private Sub Form_Initialize() ' initialisation de la form

Dim lignedetexte


Open "c:\liste.txt" For Input As #1 ' ouvre le fichier source en lecture

Do While Not EOF(1) ' tant que le fichier n'a pas été complètement exploré, il continue( juqu'à loop)
Line Input #1, lignedetexte ' inscrit le contenu de la ligne dans la variable
List1.AddItem lignedetexte 'ajoute la ligne actuelle du fichier source à la listbox
Loop ' boucle à nouveau

Close #1 ' ferme le fichier source

'focus et assombrissement de la première ligne de la listbox
List1.Selected(0) = True

'la série des composants du form
Label1 = "Heures à rajouter au client sélectionné"
Command1.Caption = "Modifier sur la liste"
Text1 = 0
Command2.Caption = "VALIDER les modif sur le fichier"
Label2 = "D'abord:"
Label3 = "les clients à modifier"
Label4 = "Puis:"
Label5 = "ce qui remplacera le fichier d'origine par celui-ci"

End Sub

bonne continuation
0
Rejoignez-nous