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 :

ListBox - Adapter la hauteur de ligne ? [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 149
    Points
    149
    Par défaut ListBox - Adapter la hauteur de ligne ?
    Bonjour à tous,


    Quelqu'un pourrait-il m'indiquer comment modifier la hauteur de ligne dans un listBox.
    L'affichage de ma dernière donnée n'apparaît qu'à moitié .

    Merci d'avance

    Habiler

    Nom : Screenshot 2024-03-04 143252.png
Affichages : 137
Taille : 3,6 Ko

  2. #2
    Membre confirmé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 361
    Points : 643
    Points
    643
    Par défaut
    Salut,
    As-tu tenté d'augmenter la hauteur de la liste déroulante tout simplement.
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 149
    Points
    149
    Par défaut
    Oui.

    En fait j'ai 2 listboxes identiques et l'une est nickel et la deuxième m'affiche que la moitié de la ligne.
    J'ai changé les diemensions de la police de caractère également mais rien n'y fait.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Est-ce un ListBox sur la feuille de calcul (ActiveX) ou bien dans un UserForm ?
    Votre illustration ne permet pas une bonne visualisation
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 149
    Points
    149
    Par défaut
    Dans un Userform
    En fait si plusieures lignes la première s'affiche correctement.

    Voici le code utilisé pour info :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     '==========  ListBox2 ========================
     
            Set list2 = ListBox2
     
            ' Efface les données précédentes dans la liste
            list2.Clear
     
            ' Boucle à travers les lignes de la feuille de calcul
            For j = 1 To wsAvisAll.Cells(wsAvisAll.Rows.Count, "A").End(xlUp).Row
                ' Vérifie si la valeur correspond à la valeur sélectionnée dans ComboBox1
                If wsAvisAll.Cells(j, "A").value = foundRow.Offset(0, -1).value Then
                    ' Ajoute la ligne correspondante a la liste
                    list2.AddItem wsAvisAll.Cells(j, "A").value & " - " & wsAvisAll.Cells(j, "B").value & " --> " & wsAvisAll.Cells(j, "L").value & "  /  " & wsAvisAll.Cells(j, "M").value & "  /  " & wsAvisAll.Cells(j, "N").value
     
                End If
            Next j
    Nom : Screenshot 2024-03-04 143252.png
Affichages : 95
Taille : 13,3 Ko
    Thx
    Habiler

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est un peu plus clair.
    C'est donc un ListBox placé dans un TabStrip ou un contrôle Multipage.
    Je ne sais pas si cela provient de là mais pourquoi utiliser une concaténation de données pour alimenter le ListBox ?

    [EDIT]
    J'ai effectué un test avec concaténation et la méthode AddItem et je rencontre pas ce phénomène.
    Question 2 : Est-ce que dans la source de données, il n'y aurait pas un caractère tel qu'un retour chariot (ascii 13) ou un linefeed (ascii 10) ?
    En tous les cas, à ma connaissance, il n'y a pas de propriété permettant de régler la hauteur des lignes d'un ListBox
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour,

    je viens de faire qq test en essayer de jouer sur les paramètres de la listbox, le seul moyen que j'a trouvé pour arriver à ce résultat est de mettre "devant" la listbox un contrôle opaque qui cache les lignes...

    Tu a essayé de supprimer / recréer la listbox, nettoyer progressivement son environnement... pour voir si ça change qq chose ?

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    il y a la propriété IntegralHeight mais elle est normalement à vrai par défaut :
    Indique si une zone de liste ou une zone de texte affiche des lignes complètes de texte dans une liste ou des lignes partielles.
    Syntaxe
    objet . IntegralHeight [= Boolean ]
    La syntaxe de la propriété IntegralHeight comporte les parties suivantes :
    Élément Description
    object Obligatoire. Un objet valide.
    Boolean Facultatif. Indique si la liste affiche des lignes partielles de texte.

    Settings

    Les paramètres de Boolean sont les suivants :
    Valeur Description
    True La liste se redimensionne pour afficher uniquement les éléments complets (par défaut).
    False La liste ne se redimensionne pas même si l’élément est trop grand pour s’afficher complètement.

    Remarques

    La propriété IntegralHeight se rapporte à la hauteur de la liste, tout comme la propriété AutoSize se rapporte à sa largeur.
    Si IntegralHeight vaut True, la zone de texte se redimensionne automatiquement pour afficher des lignes complètes. Si elle vaut False, la liste reste de taille fixe ; si les éléments sont plus grands que l’espace disponible dans la liste, ils ne sont pas affichés dans leur intégralité.


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 149
    Points
    149
    Par défaut
    Bonjour la communauté,

    Comme le supposaiit Philippe le problème provient de la concaténation/ Lorsque je supprime le dernier élément l'affichage est parfait. Mais il y a t il un moyen de remédier àce problème. J'ai essayé avec Trim mais aucun résultat. J'ai modifié Wiidtth ett Haight pareil. Aucune amélioration.


    Merci d'avance et un excellent soleil


    Habiler

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Lorsque je supprime le dernier élément l'affichage est parfait
    C'est que l'une des chaînes concaténées contient un caractère spécial car j'avais fait un test avec concaténation et chez moi cela fonctionnait.
    Pour vérifier quel caractère est fautif, il suffit de boucler sur les caractères de la dernière colonne en vérifiant le code ASCII de ceux-ci

    Cela dit, je ne comprends toujours pas la raison de concaténer. Il est tout à fait possible d'alimenter la liste avec plusieurs colonnes.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 149
    Points
    149
    Par défaut
    Merci Phlippe,

    Le dernier élément de la concaténaton comportait en ccaractère spécial.

    La concaténation ne prend-elle pas moins de place que les colonnes ?

    Bonne avant-soirée

    Habiler

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 118
    Points : 1 644
    Points
    1 644
    Par défaut
    Citation Envoyé par HABILER Voir le message
    La concaténation ne prend-elle pas moins de place que les colonnes ?
    Salut,

    Il est impossible de répondre a cette question avec une réponse qui couvre tous les cas d'utilisation.
    Concaténer "été" et "hiver" dans une seule colonne prendra forcément moins de place que 2 colonne contenant chacune "printemps" et "automne".
    L'inverse n'est pas vrai. Concaténer "printemps" et "automne" dans une seule colonne prendra plus de place que 2 colonne contenant chacune "été" et "hiver".

    De plus, concaténer toutes les données dans une seule et même colonne à un gros désavantage: Retrouver chaque donnée individuellement.

    Il existe une règle en développement: Diviser pour mieux régner. Plus les données sont séparée, plus on sais de quoi on parle, mieux on se porte.

    Les regrouper n'est vraiment à utiliser qu'en dernier recours, ou pour de l'affichage pure et simple.

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

Discussions similaires

  1. [LibreOffice] Adapter la hauteur de lignes en fonction de la taille du texte
    Par Ergastule66 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 25/10/2022, 15h07
  2. [LibreOffice][Tableur] Comment réduire ou adapter la hauteur des lignes VISIBLES (non masquées) de mon tableau ?
    Par valbi dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 16/08/2015, 18h37
  3. [XL-2007] Hauteur de ligne dans listbox
    Par eliot.raymond dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/07/2010, 16h22
  4. Réponses: 0
    Dernier message: 25/05/2009, 17h05

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