DONNÉES D'UNE LISTBOX VERS UNE FEUILLE EXCEL

TAZ59 - 26 oct. 2001 à 21:59
younespoumon Messages postés 3 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 21 avril 2010 - 21 avril 2010 à 18:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1988-donnees-d-une-listbox-vers-une-feuille-excel

younespoumon Messages postés 3 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 21 avril 2010
21 avril 2010 à 18:06
Bonjour,

J'ai un fichier excel d'une seule feuille, à l'interieur y a un formulaire, je dois mettre une liste déroulante à plusieurs choix, et quand l'utilisateur selectionne un champ, implicitement les données relatives a ce champs reste et les autres se cachent.
Comment faire ça??

Merci d'avance et de prendre en considération que je suis débutante en VBA.
Timi493 Messages postés 6 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 avril 2011
29 mai 2009 à 17:02
j'ai trouvé, c'est très bête ce n'est pas la ligne :
ligne = 2 + ListBox1.ListIndex
qui ne fonctionne pas mais celle du dessous
ActiveCell = Cells(ligne, 1)
il y avait un oublie "Feuil2" comme ceci
ActiveCell = Feuil2.Cells(ligne, 1)

il faut pas grand chose pour passer du temps parfois !!!
mon code si simple sera peut être utile à d'autres.
Timi493 Messages postés 6 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 avril 2011
29 mai 2009 à 14:59
Bonjour,
J'ai un classeur avec 2 feuilles.
Sur la feuil1 figure une listbox et deux boutons, 1 qui charge (dans la listbox), une liste d'articles contenus dans la colonne B et l'autre qui la vide.
Ensuite quand une cellule de la feuil1 est sélectionnée et que je double clic sur un des articles de la listbox la cellule activée écrit la référence de l'article situé dans la colonne A.
Tout marche bien quand les listes des colonnes A et B sont sur la feuil1 mais si je les place sur la feuil2 je peux charger ou vider ma listbox avec les doutons mais le double clic ne fonctionne pas.
Je n'arrive pas malgré mais recherches a trouver la bonne syntaxe pour lui dire de charger la référence de la colonne A feuil2.
En fait je voudrais faire référence à une feuille d'un autre classeur.
Voici mon code actuel.
Je suis sure d'être prêt du but.
Merci, cela m'aidera beaucoup.

Code dans vba feuil1

'Chargement liste

Private Sub CommandButton1_Click()
ListBox1.Clear
ComboListe
End Sub

'Vidage liste

Private Sub CommandButton2_Click()
ListBox1.Clear
End Sub

'Transfer pas double clic

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ligne = 2 + ListBox1.ListIndex '<== ligne qui ne fonctionne pas
ActiveCell = Cells(ligne, 1)
End Sub

Code dans module1

Sub ComboListe()
ligne = 2
Do Until Feuil1.Cells(ligne, 2) = "" And _
Feuil2.Cells(ligne + 1, 2) = ""
Feuil1.ListBox1.AddItem Feuil2.Cells(ligne, 2)
ligne = ligne + 1
Loop
End Sub
BassoV13 Messages postés 3 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 septembre 2006
23 mai 2007 à 12:23
Salut merci pour la source :)
Juste pour simplifier un peu le code et pour permettre d'exporter une listview qui contient plusieurs colonnes :

--------------------------------------------------------
Private Sub cmdListEXCEL_Click()
Dim Appli As New Application
Dim i, j As Integer

Appli.Visible = True
Appli.Workbooks.Add.Activate

'Parcours des lignes du listview
For i = 1 To Lv.ListItems.Count - 1
'Parcours des colonnes du listview et traitement
For j = 1 To Lv.ColumnHeaders.Count - 1
With ActiveWorkbook.Worksheets("Feuil1")
.Cells(i, j) = Lv.ListItems(i).SubItems(j)
End With
Next
Next

MsgBox "Importation terminée.", vbInformation + vbOKOnly, "Fichier Texte -> Classeur EXCEL"
End Sub
----------------------------------------------------------
Salut,
ce code me parait intéréssant,mais pour un utilisateur de VB,et il possible de faire l'inverse; récupérer les données d'une feuille excel et les inssérer dans une base acess
merci d'avance pour la reponce