Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ListBox sur feuille Excel

F

Fanfan68

Guest
Bonjour,

Malgré que le sujet sur les listesBox ont été énormément abordé, je n'ai pas trouvé un exemple se rapprochant de mon souci.

Je voudrai créer directement sur ma feuille, une listeBox comportant 3 colonnes.

Le problème c'est que les données qui devront s'y mettre se trouvent sur une autre feuille(MATERIALS) dans les rangées A, B et C.

Le second problème c'est que je connais ma cellule de départ pour chaque colonne(A3, B3, C3) mais pas la dernière cellule, j'ai donc créé pour chaque colonne des noms.
Par exemple 'TOTO' pour la rangée A3:A25, ainsi si une ligne est insérée entre ma rangée 'TOTO' s'actualisera.

Donc en gros pour simplifier, les rowsources de ma listeBox se trouvant sur ma feuille 1 devrait être, pour ma première colonne :
sheets('MATERIALS').range('TOTO')
sheets('MATERIALS').range('TATA') représentant B3:B25 pour la seconde
Et sheets('MATERIALS').range('TITI') représentant C3:C25 pour la seconde.

Mais je sais pas comment faire.

J'espère avoir été assez claire, j'avoue que même moi, j'ai du mal à me relir.....
 

Hervé

XLDnaute Barbatruc
Bonjour fanfan

Une proposition en pièce jointe.


le code :



salut
[file name=Classeur8.zip size=12533]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur8.zip[/file]
 

Pièces jointes

  • Classeur8.zip
    12.2 KB · Affichages: 65
F

Fanfan68

Guest
Merci Hervé,

c'est exactement ce qu'il me fallait, néanmoins, il y a un petit hic, en effet, pour la première et troisième colonne, pas de soucis, par contre sur la deuxième, j'ai une cellule renseignée (montant HT) qui ne doit pas apparaitre dans ma liste, cette cellule sera toujours la dernière cellule renseignée de la colonne.

C'est pourquoi, je pensais qu'il fallait mieux travailler sur des Noms, en supposant que dans ma deuxième colonne je définisse comme Nom 'Libellé' en référence aux cellules B3:B25, sachant comme je l'ai déja dis, que ma plage 'libellé' s'actualisera si on insère des lignes entre, n'est-il pas possible de remplacer dans ton code :

For j = 3 To .Cells(65536, i).End(xlUp).Row

Par un for each cell in range('Libellé').....quelque chose comme ça mais peut-être n'est-ce pas possible.

Merci
 
F

Fanfan68

Guest
Re-bonjour Hervé,

Au risque d'exagérer, j'ai vu que dans les propriétés, il était possible d'afficher des en-têtes de colonnes en mettant la propriété 'ColumnHeads' à true.

Ma question est la suivante : est-il possible, pour ces en-têtes de colonnes, de définir une cellule en particulier, exemple les A2, B2 et C2 de ma feuille source

Merci
 

Hervé

XLDnaute Barbatruc
Bonjour fanfan.


ce que tu demande peut etre réalisé par la méthode listfillrange :

Utilises ce code en lieu et place de celui précédent :



La plage nommée toto correspond à tes données en feuille 2, les entetes correspondent aux entetes de tes colonnes. celles-ci ne doivent pas être incluses dans la plage nommée.

salut
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…