Gérer base de donnée

Résolu
Signaler
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010
-
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010
-
Bonjour,
Je dispose d'un fichier au format txt avec en contenu des marques de voitures ! contenu du fichier :

Renault
Fiat
Ford
Chevrolet
Bentley
Chrysler
...

j'aimerais lire le contenu du fichier dans une listbox et quand j'appui sur un bouton créer une boucle jusqu'à la fin du fichier txt.

En gros il faut lire le fichier txt calculer le nombre de lignes créer boucle jusqu'à la fin du fichier a chaque valeur afficher msgbox retirer valeur diminuer le nombre de lignes de 1 et continuer la boucle et quand il n'y à plus du tout de valeur alors couper le programme

En espérant avoir été assez claire...
merci d'avance
123

9 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Fait le à l'envers

Dim i As Long
For i = LaListBox.ListCount - 1 To 0 Step -1
    MsgBox LaListBox.List(i)
    MsgBox LaListBox.RemoveItem i
Next i

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,


Reagrde sur codyx.Org, cela ne m'étonnerai pas qu'il n'y ait pas un snippet pour lire un fichier texte...


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Re,

Regarde ce snippet, aprés à toi de faire un peu de modife....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

voici une méthode toute prête

Option Explicit

Private Function ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
Dim ff As Integer
Dim sBuffer As String
    ff = FreeFile
    
    Open sPath For Input As #ff
        sBuffer = Input(LOF(ff), #ff)
    Close #ff
    aLines = Split(sBuffer, vbCrLf)
End Function

' exemple
d'utilisation
Private Sub exemple()
    Dim aMesLignes() As String
    Dim i As Long
   
ReadAllLines "C:\Documents and
Settings\mortalino\Bureau\Nouveau.txt", aMesLignes
Debug.Print (1 + UBound(aMesLignes)) & " lignes trouvées" & vbCrLf

For i = LBound(aMesLignes) To UBound(aMesLignes)
    Debug.Print aMesLignes(i)
Next i

End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

Résultat :

6 lignes trouvées

Renault
Fiat
Ford
Chevrolet
Bentley
Chrysler

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bon, là au dessus c'est pour lire (d'ailleurs, remplace Private Function, par Private Sub).

Voici une méthode d'écriture :

Option Explicit

Private Sub WriteLines(ByVal sPath As String, ByVal sNewValue As String)
Dim ff As Integer
Dim sBuffer As String
    ff = FreeFile
    
    Open sPath For Append As #ff
        Print #ff, sNewValue
    Close #ff
End Sub

' exemple
d'utilisation
Private Sub exemple()
   
WriteLines "C:\Documents and
Settings\mortalino\Bureau\Nouveau.txt", "Peugeot"

End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

Merci bcp pour votre aide mais tout sa je sais faire :) je cherche un moyen pour lire ligne par ligne le contenu d'une listbox et afficher ce contenu à la volée dans un message box et quand il n'y à plus de contenu dans cette listbox alors couper le programme

en tout cas merci sa fait plaisir quand même :)

123
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Couper le programme, c'est Unload Me (si t'as qu'une Form)

Lire ListBox :

Dim i As Long
For i = 0 To LaListBox.ListCount - 1
    MsgBox LaListBox.List(i)
Next i

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

oui mais le problème c'est que je dois retirer le nom de la marque de voiture à chaque fois imagine chevrolet est affiché dans la msgbox alors il faut retirer chevrolet et sa vraiment sa fait tout buguer :(

123
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

Merci bcp c'est exactement sa ;)

123