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

rowsource listbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bignou77

XLDnaute Occasionnel
bonjour,
me voici arrêter de nouveau, donc je vient vous implorer de bien vouloir m'aider.

en gros j'ai dans un code pour alimenter une listbox la ligne suivante :

ListBoxEffectifsModif.RowSource = "EFFECTIFS!A2:E" & Cells.SpecialCells(xlCellTypeLastCell).Row

EFFECTIFS étant l'onglet ou se trouve la source.

et je voudrais savoir si il y a possibilité d'afficher uniquement les colonnes A et E sans les intermédiaire.

je doit avouer que je code d'origine n'est pas de moi, mais d'un pote qui ma autorisé a l'utilisé (c'est un pote du taf, et je fait un prog pour le taf).

je vous remercie d'avance.
@bientôt
bignou77
 
Re : rowsource listbox

Bonjour,

A la condition que les colonnes A et E aient le même nombre de ligne, ceci devrait marcher:

ListBoxEffectifsModif.RowSource = "EFFECTIFS!A2:" & Cells.SpecialCells(xlCellTypeLastCell).Row, "EFFECTIFS!E2:" & Cells.SpecialCells(xlCellTypeLastCell).Row
 
Re : rowsource listbox

Bonjour,

Si j'ai bien compris la question, un petit tour dans la FAQ Xld en suivant les liens figurant en bas de mon post peux te servir.
A partir d'un fil sur le sujet de cette FAQ :
Code:
Private Sub UserForm_Initialize()
[B][COLOR=DarkGreen] '***si la dernière ligne est supérieure à 256 déclarer i et n en Integer[/COLOR][/B]
Dim n As Byte, i As Byte

With Sheets("Feuil1")
    ListBox1.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
    n = .Range("E65536").End(xlUp).Row
    For i = 2 To n
        With ListBox1
            .AddItem Sheets("Feuil1").Range("E" & i)
        End With
    Next
End With
End Sub
Car malheureusement je ne crois pas qu'il soit possible de définir une liste à partir de 2 plages non concommitantes en une seule action.

En effet l'utilisation d'une formulation du genre :
Code:
Union(.Range("A2:A" & .Range("A65536").End(xlUp).Row), .Range("D2:D" & .Range("D65536").End(xlUp).Row)).Value
Ne renvoie que les données de la 1ère plage. C'est à dire la colonne A

Cordialement
 
Re : rowsource listbox

Re,
Merci a vous 2 de vous tes pencher sur mon probleme. mais snif ca ne marche pas.

pour Coriolan, VBA me met une erreur avec la virgule apres le premier : (xlCellTypeLastCell).Row

et pour Spitnolan08, je suis allé voir ton poste, et j'ai rien trouve pour m'aider.


si quelqu'un a une idée je suis preneur.

merci de vos effort a une prochaine fois
 
Re : rowsource listbox

Bonjour Bignou, Salut Sptinolan🙂

essaye peut être comme ci dessous, si j'ai bien compris :

Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim montableau(), i As Integer, j As Integer, x As Integer, k As Integer
x = Range("A65536").End(xlUp).Row
For i = 1 To 5 Step 4
    For j = 2 To x
        ReDim Preserve montableau(0 To k)
        montableau(k) = Cells(j, i)
        k = k + 1
    Next j
Next i
ListBox1.List = montableau
End Sub

bonne soirée
@+
 
Re : rowsource listbox

bonjour a tous

sur la piste de Pierrot 🙂

Code:
 tableau = Sheets("EFFECTIFS").Range("A2:E" & Sheets("EFFECTIFS").Range("A65536").End(xlUp).Row)
ListBox1.List = tableau

ne pas oublier de noter Columncount=5 pour la listbox
 
Re : rowsource listbox

Re,
Bonjour aux petits nouveaux😉,
et pour Spitnolan08, je suis allé voir ton poste, et j'ai rien trouve pour m'aider.
As tu regardé mon post 😕 Je t'ai fait tout le travail... si j'ai bien compris la question, mais comme tes dernières explications sont aussi peu détaillées que les premières.

Maintenant, sans l'avoir regardé en détail, la proposition de Pierrot peut satisfaire à ton besoin s'il a mieux compris que moi, car nos codes ne traitent pas la même problématique...

Bien sûr, il faut changer les noms de feuille.😎

Cordialement
 
Dernière édition:
Re : rowsource listbox

Bonjour a tous.
je voie que je vous embête avec mes questions.
en gros
ce que je veus faire si j'ai pas était assé explicite
j'ai dans un usf une listbox qui est alimenter par une plage a savoir de A2 a E{fin du tableau}

ce que je souhaite c'est que seul les colonne A et E alimente la listbox

en gros vos solution a pierrejean et Pierrot93 ne font afficher que la colonne A.

mais c'est pas dramatique j'ai penser a autre chose je vais voir pour faire 2 listbox, une avec la colonne A et une seconde avec la colonne E, ça je devrais y arrive normalement.

en tous ça je vous remercie tous, et je suis désolé Spitnolan08 si je n'ai pas trouve de l'aide dans tes topic, mais je doit avouer que je suis un vrai débutant en VBA, et même le titre de débutant est un poil fort a mon avis.

encore merci a tous.
@ bientôt
bignou77
 
Re : rowsource listbox

Bonjour à tous

quelque chose doit m'échappé, car si tu as bien testé mon code, celui ci envoie vers la "listbox", dans une même colonne, les données présentes en colonne A et en colonne E ...

Le code de PierreJean, quand à lui enoie les données des colonnes A à E vers 5 colonnes de la "listbox", reste à ne pas afficher les colonnes centrales, en forcant la largeur de ces mêmes colonnes à 0.

sinon ton fichier en pièce jointe nous aiderait peut être à y voir plus clair.

bonne journée
@+
 
Re : rowsource listbox

Bonjour tous le monde,

Une autre façon de faire :

Code:
Private Sub UserForm_Initialize()

Dim Plage
Plage = Range("A1:E" & Range("E65536").End(xlUp).Row) ' tableau à 5 colonnes représentant la plage de travail
' alimentation de la listbox
With Me.ListBox1
    .ColumnCount = 2 ' nombre de colonne
    .ColumnWidths = "60;60" ' largeur des colonnes
       For i = 1 To UBound(Plage) ' boucle sur les éléments du tableau Plage
          .AddItem Plage(i, 1) ' prend les éléments de la colonne A de la feuille, (1ère colonne du tableau Plage)
                               ' pour alimenter la 1ère colonne de la listbox
          .Column(1, i - 1) = Plage(i, 5) ' prend les éléments de la colonne E de la feuille (dernière colonne du tableau Plage)
                               ' pour alimenter la 2ème colonne de la listbox
       Next
End With

End Sub


Bonne journée
 
Re : rowsource listbox

Re tous,

Ce n'est toujours pas clair Bignou77. La listbox dont tu parles est bien située dans un UF ? Que veux tu faire ? Avoir les éléments des colonnes A et E dans 2 colonnes différentes de ta ListBox ou dans une même colonne à la suite ?

Mon code traite le 2ème cas de figure...
Il suffit juste de changer le nom de feuille, bis repetita placent, parait il 😕

Code:
Private Sub UserForm_Initialize()
 '***si la dernière ligne est supérieure à 256 déclarer i et n en Integer
Dim n As Byte, i As Byte

With Sheets("EFFECTIFS")
    ListBox1.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
    n = .Range("E65536").End(xlUp).Row
    For i = 2 To n
        With ListBox1
            .AddItem Sheets("EFFECTIFS").Range("E" & i)
        End With
    Next
End With
End Sub
La méthode RowSource étant à bannir dans un UF (Même si elle apparait dans les exemples de la FAQ bien que @+Thierry les déconseille également : Il faudrait peut être que Pascal mette un mot sur le sujet d'ailleurs...)

Cordialement
 
Re : rowsource listbox

Hello all.
je vois que vous vous donnée du mal.

ce que je voulais c'était ne voir que les colonne A et E dans ma listbox. et j'ai fait comme Pierrot93 ma dit, les colonnes a 0 et on ne vois plus rien.
sinon c'était bien la valeur de A2, en face de E2, etc... que je voulais.


en tous cas un gros merci a vous tous, et la prochaine fois je vous donnerais un fichier a manger, pour pouvoir vous caler 🙂


vraiment un gros merci a tous et désolé si je vous est cassé les pieds.
 
Re : rowsource listbox

Re pierrejean,
tu est un tenasse a ce que je voie, en tous cas ca marche inpec.
c'est la solution que j'avais prise.
je te remercie encore une fois.

et a une prochaine fois surement


PS : ca tombe bien car ce soir j'ai mon boss qui passe et il ne me rester plus que ca a reglé comme probleme, je vais lui montrer mon travail, ou plutot notre travail 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…