Afficher la valeur d'une listbox dans une cellule d'un fichier Excel

Résolu
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010 - 26 avril 2010 à 19:11
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 29 avril 2010 à 18:07
Bonjour tout le monde,


Je veux afficher la valeur d'une listbox dans une cellule d'un fichier Excel,j'utilise le code suivant mais il ne marche pas :

xl.Range("B" & 23).Value = List1.Text


quelqu'un peut m'aider?????

merci d'avance

14 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
29 avril 2010 à 13:01
Le problème se situe au niveau de la déclaration de la listBox. J'ai trouvé cela sur le Net en VB6:
Le code suivant illustre comment retourner la valeur d'un élément ListBox.

'Visual Basic 6.0
Dim i As Integer
Private Function GetItemText(i As Integer) As String
' Return the text of the item using the index:
GetItemText = ListBox1.List(i)
End Function
N'ayant pas VB6 je ne peux pas faire de test.
Je vous encouragerais à reformuler votre question en précisant que c'est du VB6
@+
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
26 avril 2010 à 22:39
Bonjour,
Mettre:
Range("A1") = ListBox1.Value
@+
0
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
27 avril 2010 à 13:11
Ce code ne marche pas !!!!!!
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 avril 2010 à 13:53
L'avez-vous employé comme ceci?
Private Sub ListBox1_Change()
Range("A1") = ListBox1.Value
End Sub
@+
0

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

Posez votre question
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
27 avril 2010 à 17:59
d'abord merci pour votre réponce
pour vous mettre dans la situation j'ai un formulair1 avec une listbox list1 et un textbox text1 lorsque je clique sur un boutton j'ouvre Excel sous forme d'etat et je veux recupperer les valeur de cette listbox dans d'une cellule dans ce fichier Excel

voila le code que j'ai utilise ça marche avec les textbox :


private sub commande1_click()
dim XL as application
set Xl=createobject("Excel.application ")
XL.workbooks.open app.path & "\mon fichier.xls"
xl.Range("A" & 3).Value = text1.Text
xl.Range("B" & 23).Value = List1.Text
end sub

j'espere que e suis clair

merci d'avence .
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 avril 2010 à 18:18
C'est en VBA Excel?
C'est dans un UserForm?
0
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
27 avril 2010 à 19:17
Dans un form VB6


private sub commande1_click()
dim XL as application
set Xl=createobject("Excel.application ")
XL.workbooks.open app.path & "\mon fichier.xls"
xl.Range("A" & 3).Value = text1.Text
xl.Range("B" & 23).Value = List1.Text
.......
......



end sub
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 avril 2010 à 20:37
Je suis désolé mais je n'ai pas VB6. Mais par contre je pense qu'il faut mettre:
la ligne
xl.Range("B" & 23).Value = List1.Text

non pas dans un bouton, mais dans l'evenement
List1_Change de votre listBox
Ce qui devrait donner à peu près cela:

Private Sub List1_Change()
xl.Range("B" & 23).Value = List1.Text
End Sub

@+ Le Pivert
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 avril 2010 à 20:39
Je viens de me relire, si cela ne marche pas avec
List1.Text essayez List1.Value je ne connait pas les concordances avec VB6
@
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 avril 2010 à 10:30
La nuit portant conseil, je pense qu'il faut faire ceci:

'pour le texBox
private sub commande1_click()
dim XL as application
set Xl=createobject("Excel.application ") XL.workbooks.open app.path & "\mon fichier.xls"
xl.Range("A" & 3).Value = text1.Text
end sub

et pour la listBox
Private Sub List1_Change() 'à vérifier cette ligne
dim XL as application
set Xl=createobject("Excel.application ")
XL.workbooks.open app.path & "\mon fichier.xls"
xl.Range("B" & 23).Value = List1.Value
End Sub

Ce qui fait que lorsque vous sélectionnez un élement dans la listBox il s'inscrit dans Excel
@+ Le Pivert
0
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
28 avril 2010 à 22:09
ok je vais tester cala .........
0
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
29 avril 2010 à 11:50
j'ai testé cela mais en vain....toujours le fichier excel se lance vide!!
0
cs_hirondellle Messages postés 35 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 27 mai 2010
29 avril 2010 à 17:44
Merci Le Pivert ça marche

j'est modifier un peu la fonction comme suit et ça marche super



Private Function GetItemText()
Dim i As Integer
GetItemText = ""
' Return the text of the item using the index:
For i = 0 To List1.ListCount
Text3.Text = List1.List(i)

GetItemText = GetItemText & Text3.Text & vbCrLf

Next i
MsgBox (GetItemText)
End Function


merci pour votre aide
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
29 avril 2010 à 18:07
OK, c'était bien au niveau de la formulation de la listBox que cela coincé. Et vous avez mis cela dans un textBox. N'oubliez pas de mettre réponse acceptée.
@+ Le Pivert
0
Rejoignez-nous