IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

positionner un listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut positionner un listbox
    Bonsoir à tous,

    je voudrais positionné mon listbox à la dernière ligne non vide, mais ça plante!!
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Tablo = Worksheets(ComboBox4.Text).Range("A2:z10000").Value
        ListBox1.List() = Tablo
     
        Sheets(ComboBox4.Text).Select
     
        Cells(16384, 1).End(xlUp).Select ' dernière cellule non vide de la colonne 1
        ActiveCell.Offset(0, 0).Select
        ListBox1.Text = ActiveCell.Text
    Je dois vraiment me planter mais dans les listbox je suis un peu pommé. ce code est initialize de l'userform

    merci à tous
    jijie

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    j'utilise ce listbox juste pour visionner les dernière cellules de mon classeur et ce sur 10 colonnes.

    j'ai essayer ton code mais ça ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Tablo = Worksheets(ComboBox4.Text).Range("A2:j10000").Value
        ListBox1.List() = Tablo
        ActiveSheet.Shapes("ListBox1").Top = Range("A" & Range("A65536").End(xlUp).Row).Top
    ActiveSheet.Shapes("ListBox1").Left = 0
    je pense faire une grosse C... mais je suis pommé sur ce coup!!


    merci

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ucfoutu a compris autre chose, probablement ce que tu veux.
    Et je viens de comprendre à mon tour.
    Oublie tout ce que je t'ai dit.
    Tu dois préciser le nombre de colonnes de ta liste, pour avoir tes dix colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ListBox1.ColumnCount = 10
    Ensuite, teste le code de Ucfoutu.
    Je croyais que tu voulais physiquement placer ta liste sur la dernière ligne de la feuille de calculs
    Code toi... : Sélectionner tout - Visualiser dans une fenêtre à part
    je voudrais positionner mon listbox à la dernière ligne non vide

    Edit
    Donc, pour placer ta liste sur la dernière ligne de ta liste, mets simplement dans userform_initialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.ListIndex = ListBox1.ListCount - 1
    A+
    Et j'ai testé

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour Ousk,

    1) Avoir compris/deviné , cependant, ne signifie pas du tout que j'approuve la démarche ...

    Il est par ailleurs clair que sa question elle-même justifiait la confusion ... (au point qu'en répondant, je me suis contenté de répondre simplement pour le cas où.... il avait voulu dire autre chose). Je' comprends donc ta réponse, que j'aurais également apportée (avec humour), si j'avais répondu le premier
    Tu as donc fort bien fait de répondre comme tu l'as fait ...
    Tu as par ailleurs remarqué ce que j'ai fait délibérément avec mon exemple (le contraire de ce qu'il demandait, en montrant comment sélectionner la dernière vide et non la dernière remplie... juste à titre d'exemple, pour réfléchir).

    2) Il a sans aucun doute mille fois mieux à faire que de passer, comme il le fait là, par une listbox (on se demande bien pourquoi) !!!

    Mais c'est sa volonté, non ?

    Laissons-le réagir, donc ...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    désolé,
    pas de bug! mais par contre je me trouve en fin de feuille et non à la dernière cellule non vide!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Cells(16384, 1).End(xlUp).Select ' dernière cellule non vide de la colonne 1
           ActiveCell.Offset(0, 0).Select
        Tablo = Worksheets(ComboBox4.Text).Range("A:j").Value
        ListBox1.List() = Tablo
     
        Me.ListBox1.ColumnCount = 10
     
        ListBox1.ListIndex = ListBox1.ListCount - 1
    Merci

    Pour la suggestion de trouver autre chose, pas de problème!!

    Le truc c que je voudrais que la personne qui saisi les lignes puisse voire ses derniers enregistrements et également pouvoir visionner plus haut, je suis OK que ce n'est pas la meilleur solution, et si il y a autre chose merci de me le faire savoir!!

    jijie

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Euh ...

    Et si tu relisais bien tout ?

    Je t'ai donné le code pour la dernière vide ...

    Est-il si difficile, à partir de là, d'écrire (pour la denière non vide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command2_Click()
      'Ici, nous allons sélectionner la dernière ligne non vide, maintenant
      Dim i as integer
      For i = List1.ListCount - 1 To 0 Step -1
        If List1.List(i) <> "" Then
          List1.Selected(i) = True
          Exit For
        End If
      Next
    End Sub
    Voilà .... juste un opérateur à changer !!!! (ma foi...)

    Et (une autre fois), je n'approuve absolument pas ta démarche ...


    Bonne étude ...

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai bien sûr une autre solution mais comme tu as commencé avec un combo, tu regarderas ensuite.
    Pour avoir la dernière ligne, tu dois modifier la plage
    Pour simplifier le code, je crée l'instance de la feuille. Tu verras si tu laisses comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim FL1 as worksheet
    Set FL1 = Worksheets(ComboBox4.Text)
    Tablo = FL1.Range("A1:j" & FL1.Range("A65536").End(xlUp).Row).Value
    ListBox1.List() = Tablo
    Pour "l'autre" solution, regarde ici. Tu ouvres le zip et tu testes. Si besoin est, place tes données dans feuil1 (je crois me souvenir que feuil1 contient des données)
    A+

    Edit
    Le Zip positionne directement sur la dernière ligne de la plage de données.
    Attention, telle quelle, la méthode permet les modifications et la mise à jour instantanée de la base de données, ainsi que la saisie de nouvelles lignes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Mauvais positionnement de ma ListBox (Activex)
    Par ateppaz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2015, 14h55
  2. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 16h50
  3. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 08h53
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 14h02
  5. Copier le texte d'un ListBox dans le clipboard.
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/08/2002, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo