Prob : Importation donnée XLS dans une listbox

Résolu
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008 - 23 oct. 2006 à 12:30
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 - 23 oct. 2006 à 19:45
Hello tout le monde,

Voilà, je me suis il y a maintenant à peine une semaine sur excel et le visualbasic qui est relié avec les macro d'excel.

Je suis sur un projet ou j'ai créer dans excel une tables que j'incrémente chaque jour avec de nouvelle donnée, ça marche nickel et tout, mais maintenant j'aimerai faire une list box qui recherche par critère, des informations précise.

Mon tableau de valeur excel, fait de e2 à y2 en colonne et indéfini au niveau des lignes.

Mon problème, c'est que dans ma list box, j'aimerai sélectionner que certaine colonne et pas toute... j'ai essayé mais en vain... :'(

Ils me prends sois toute les colonnes ou qu'une seul... j'ai essayé comme ça mais je connais pas toute les propiété de la listbox je pense.

dim lg   'variable ligne
For i=2 to 10000
 lg=i
ListBox1.List = (lg, 0) 'sélectionne la colonne 0 de la list box d'après ce que je crois
ListBox1.AddItem = Cells(lg, 6).Value 'ajoute dans la list box la valeur...
Else
 Exit For
End If

Mais voilà ça ne marche pas.... :'(

En gros et en disant ça simplement, j'aimerai tout betement pouvoir mettre les colonnes que je veux de mon tableau excel dans une list box... les conditions et tout ça je ferai après coup.

Merci de m'aider!!!

15 réponses

B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 19:45
Re,

ça me mets tout dans la 1er colonne de la listbox !!

mais dans une listbox, tu as qu'une colonne Gokuan, si tu en veux plusieur utilise plutot la listview
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 oct. 2006 à 12:46
Salut,

pas le temps de gérer les éventuelles erreurs donc suit bien les instructions :

Ouvre un nouveau classeur, appuie sur Alt + F11 (ça ouvre l'éditeur vb), dans le menu Insertion, tu as Module, clique dessus, et une page blanches apparait.

Colle ce code et  remplace ce que je t'ai mis en commentaire (en vert dans le code) :
T'as plus qu'à appuyer sur F5 pour exécuter le code !

Sub ImportDonneesFichiersTexte()
    Dim strFile         As String
    Dim strAllText()    As String
    Dim strDonnees()    As String
    Dim ff              As Integer
    Dim i               As Integer
    Dim iCounter        As Integer
    Dim iNbLine         As Integer
    Dim iLigne          As Integer
    Dim iColonne        As Integer
    
strFile =  "C:\Documents and settings\<nom utilisateur>\Bureau\ValeursExcel.txt"
' ici place le bon chemin et nom du fichier texte

ff = FreeFile
Open strFile For Input As ff
    Contenu = Input(LOF(ff), ff)
Close ff

strAllText() = Split(Contenu, vbCrLf)
iNbLine = UBound(strAllText)
iCounter = 0: iLigne = 1: iColonne = 1

For i = 0 To iNbLine
    If Left(strAllText(i), 1) = "#" Then
        If iCounter >= 3 Then ThisWorkbook.Sheets.Add
        Sheets(iCounter + 1).Select
        Sheets(iCounter + 1).Name = Mid(strAllText(i), 2, Len(strAllText(i)))
        iCounter = iCounter + 1: iLigne = 1: iColonne = 1
    Else
        strDonnees = Split(strAllText(i), ";")
        Cells(iLigne, iColonne).Value = strDonnees(0)
        Cells(iLigne, iColonne + 1).Value = strDonnees(1)
        iLigne = iLigne + 1
        Erase strDonnees
    End If
Next i
Erase strAllText
End Sub

<small>Coloration syntaxique automatique [mortalino] </small>
       

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 12:54
Lu, merci du coup de main, mais le problème c'est que toi c'est une fichier texte que t'importe, alors que moi ma table est faite dans excel et depuis excel j'ai créer un bouton avec une macro qui lance un userform créer sous l'éditeur VB et dans ce userform, j'ai une listbox justement, et j'aimerai importer que certaine de mes colonnes de ma tables...

C'est tout, mais je sais vraiment pas comment m'y prendre... Mais merci quand même
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 12:54
Lu

voici un exemple de procédure


Sub AjouteElement(Nom as String)


List1.AddItem Nom
end sub


utilisation :
tu tape dans ta textbox, les nom des colonnes que tu veux sour le format
NomA/NomB/NomC ...etc

Private Sub Command1_Click
dim ListElement() as String 
ListElement = Split(ListElement,"/")
For Depart = 1 to 2000
   For i = 0 to Ubound(ListElement)
      If Cells(Depart) = ListElement then    AjouteElement(Text1.Text)
   Next i
Next Depart

End sub

dans cette exemple, le Cells(i) pointe sur les noms de tes colonnes
0

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

Posez votre question
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 12:56
re,
petite correction

remplace
If Cells(Depart) = ListElement then    AjouteElement(Text1.Text)

par
If Cells(Depart) = ListElement then    AjouteElement(i)


 
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 12:58
lol, merci aussi, mais ça m'aide pas beaucoup, je vois pas ou est la listbox dans votre code, je connais très bien le pascal, mais le vb, je nage un peu encore pour le moment
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 12:59
J'abuse vraiment...désolé!!
(j'ai du mal ,voici la correction de mon erreur!

If Cells(Depart) = ListElement(i) then    AjouteElement(Cells(Depart),5)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 oct. 2006 à 13:02
Salut,

me concernant, je suis désolé, je suis allée trop vite et je me suis trompé de topic.. 
Le mot importation m'a induit en erreur.
Je reposte sur le bon ! BombJack me comprendra, il a déjà répondu entre temps, t'auras une alerte mail  ;)

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 13:03
voici un exemple de procédure
'ici on ajoute un nom dans la listBox
Sub AjouteElement(Nom as String)

List1.AddItem Nom  ' <- voici la listbox
end sub

utilisation :
tu tape dans ta textbox, les nom des colonnes que tu veux sour le format
NomA/NomB/NomC ...etc

Private Sub Command1_Click
dim ListElement() as String 
ListElement = Split(ListElement,"/")
For Depart = 1 to 2000
   For i = 0 to Ubound(ListElement)
' si le nom de la colonne excel correspond à ton choix 
    If Cells(Depart) = ListElement(i) then    AjouteElement(Cells(Depart),5)
' alors on l'ajoute à notre procédure "AjouteElement" 

   Next i
Next Depart

End sub
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 13:06
ahhhh ok, je viens de comprendre, mais je pourrai pas évité de tapé les colonnes que je veux dans un textbox, et tout simplement dans le code?
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 13:07
encore une erreur  <---- la honte :/

 
Sub AjouteElement(Nom as String)

List1.AddItem Nom  ' <- voici la listbox
end sub

utilisation :
tu tape dans ta textbox, les nom des colonnes que tu veux sour le format
NomA/NomB/NomC ...etc

Private Sub Command1_Click
dim ListElement() as String 
ListElement = Split(ListElement,"/")
For Depart = 1 to 2000
   For i = 0 to Ubound(ListElement)
' si le nom de la colonne excel correspond à ton choix 
    If Cells(Depart) = ListElement(i) then    AjouteElement(Cells(Depart,5))
' alors on l'ajoute à notre procédure "AjouteElement" 

   Next i
Next Depart

4h de sommeil aujourd'hui .....j'vais retourné dormir j'crois ...
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 13:10
lol, pas de souci, j'en ai pas beaucoup non plus , mais si t'arrivais juste à me dire comment évité ce textbox avec le nom des colonnes que j'aimerai, je pourrai pas mettre le nom des colonnes dans le code directement comme ça plus besoins de les écrire dans un textbox...
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
23 oct. 2006 à 13:13
oui tu peux,

Dim ListElement() as String

Private Sub Form_Load()
   ListElement(0) = "ToTo" 
   ListElement(1) = "TiTi"
End Sub

Sub AjouteElement(Nom as String) 
   List1.AddItem Nom  ' <- voici la listbox
end sub

Private Sub Command1_Click
dim ListElement() as String 
ListElement = Split(ListElement,"/")
For Depart = 1 to 2000
   For i = 0 to Ubound(ListElement)
    If Cells(Depart) = ListElement(i) then    AjouteElement(Cells(Depart,5))
   Next i
Next Depart
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 13:15
merci, je vais manger et je teste ça après ^^ Bonne ap aussi si jamais!
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
23 oct. 2006 à 19:37
Re hello, alors j'ai essayé ton code, mais ça ne marche pas... :o( J'ai essayé de mon côté de trouvé une astuce, mais j'arrive pas, ça me mets tout dans la 1er colonne de la listbox... j'arrive pas mettre le reste sur les autres colonnes...
0
Rejoignez-nous