cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013
-
29 févr. 2008 à 15:12
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 2013
-
29 févr. 2008 à 17:39
Me revoilà! salut à tous!
voici ma nouvelle question (pour ceux qui suivent mes problèmes!)
j'ai donc un fichier.txt dans lequel j'ai des données réparties sur trois colonnes...
La première colonne (qui correspond aux noms d'articles) est liée a une combobox. lorsque je déroule celle-ci, elle m'affiche donc les noms d'articles.
ce que je souhaiterais faire, c'est, l'orsque je sélectionne un article dans la combobox, les deux textbox (qui se trouvent dans le meme userform) affichent les valeurs des deux autres colonnes (qui sont respectivement le prix et la quantité)
exemple:
tableau du fichier.text
Pain 1.80 15
Eau 0.75 20
Je sélectionne dans mon combobox "eau" et il m'affiche 0.75 dans une premiere textbox et 20 dans une seconde.
Merci d'avance pour votre aide...
je vous laisse le début de code que j'ai, mais il me permet seulement de lier la combobox et le fichier.txt...
Private Sub UserForm_Activate()
'ouverture du fichier et lecture ligne par ligne
Open "c:\essai.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, ligne$
ComboBoxArticle.AddItem Mid(ligne$, 1)
Loop
Close #1
End Sub
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 29 févr. 2008 à 15:33
Salut,
Si 0.75 et 20 se trouve sur la même ligne, insères les,
en même temps que l' article mais dans une liste box en arrière plan (Visible=False)
Line Input #1, ligne$
ComboBoxArticle.AddItem Mid(ligne$, 1)
List1.Additem Mid(ligne$, PositionDebut)
Et lorsque tu sélectionnes un item dans ton combo,
et grace à la propriété ListIndex, tu affectes à tes texbox
les valeurs extraites de ta listbox fantome.
Etant donné que ListIndex du combo correspond à ListIndex de la listBox
cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013 29 févr. 2008 à 15:50
Merci,
mais en fait, je me rend compte que mon code est pas bon, il m'affiche dans mon combobox la ligne compete (Eau 0.75 20) alors que je voudrais juste qu'il m'affiche 'eau'...
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 29 févr. 2008 à 17:39
Salut,
et oui ! d'accord avec Libre_Max, un fichier texte c'est pas un tableau excel ! c'est pas par ce que
tu ecris tes données sous forme de colonnes que ce sont des colonnes.
Ce que je ne comprend pas c'est pourquoi tu travails sur un fichier text a partir d'excel alors qu'il serait si simple de
travailler directement dans excel et si besoin de creer un fichier texte le moment venu ?!?!
Donc maintenant comme te la dit Libre_Max il va te falloir travail a decomposer tes chaine de characters. Vu que tu as séparé tes pseudo colonnes par des espaces tu pourrais les utiliser pour decomposer tes chaines.
Par exemple si tes colonnes sont separées par un seul espace tu peux comme ceci :
Dim PrixArticle As String, MaChaine As String ' ou MaChaine represente la ligne extraite du fichier text
PrixArticle = Replace(MaChaine,Left(Name, Application.Search(" ", MaChaine, 1),"") ' on enleve le nom de l'article et le premier espace
PrixArticle = Left(Name, Application.Search(" ", PrixArticle, 1) - 1) ' on recupere que le prix
Comme tu peux le voir c'est quand pas tres conviviale de travail sur des fichiers text