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

IHM Discussion :

[Formulaire-VBA]moduler la taille des colonne dune liste déroulante


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut [Formulaire-VBA]moduler la taille des colonne dune liste déroulante
    Bonjour,


    j'affiche des donnéees sur une liste déroulante en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      sql = maRequete
      MAListe.RowSource = sql
    et je voudrais pouvoir moduler laffichage, c'est-àdire, par exemple, rendre la colonne plus petite que la deuxième ou vice versa.
    Est-ce possible?

    Merci pour votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    exemple pour 6 colonnes
    Me!la , Me!lb, ... sont des zones de texte dans lesquelles la largeur de chaque colonne est spécifiée, à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me!MaListe.ColumnWidths = Me!la & "cm;" & Me!lb & "cm;" & Me!lc & "cm;" & Me!ld & "cm;0cm;0cm"

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour modifier la largeur de tes colonnes, il faut passer par le nombre de caractères, et les transformer en longueur.

    Le premier moyen est de passer par des API va jeter un coup d'oeil au tuto de caféine http://cafeine.developpez.com/access...utoextensible/ pour ces API.

    Le deuxième serait de faire des test, pour cela rempli ta colonne avec la lettre M (c'est en général la plus large dans les polices),met 10 M et adapte la largeur, note le chiffre, divise le par 10.

    Il te faut donc récupérer le nombre de caractères (fonction Len), le mulitiplié par ton chiffre et adapter la taille.

    C'est un peu tordu, mais je ne vois que cela.

    A moins qu'il y'ait une API pour cela

    Cependant, cela risque de ralentir l'affichage.

    Starec
    Dernière modification par Invité ; 05/04/2007 à 11h08. Motif: Complément d'informations

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    et je voudrais pouvoir moduler laffichage, c'est-àdire, par exemple, rendre la colonne plus petite que la deuxième ou vice versa.
    Les pistes de Helas et de starec sont trés interessantes ... si tu veux effectivement gérer dynamiquement la dimension des colonnes en fonction de la requête sélectionnée ...
    Mais au fait, quel est ton objectif précisément? définir la dimension des colonnes en fonction de la requête sélectionnée comme source ou simplement ajuster ces colonnes pour une source qui ne change pas....
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 587
    Points
    24 587
    Par défaut
    Il te faut donc récupérer le nombre de caractères (fonction Len), le mulitiplié par ton chiffre et adapter la taille.
    Le problème n'est pas si simple. En effet lorsque l'on a un champ à X caractères (ou numérique) bien souvent il n'est pas rempli totalement. Il faut donc récupèrer le plus grand nombre de caractères de la plus longue chaine trouvée.

    Regarde mon tuto sur la recherche (3ème partie, chapitre VI) il y a le code avec 2 possibilités de calcul de largeur.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Salut Loufab, je me suis mal exprimé, mais je sous entendais bien qu'il fallait prendre la plus grande longueur que l'on trouve dans le champ.

    Nota : C'est un des seuls tuto que je n'avais pas encore lu.

    Starec

  7. #7
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Merci à tous d'avoir répondu!
    je vais regarder de plus près ce tuto!

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 587
    Points
    24 587
    Par défaut
    Citation Envoyé par Starec
    Re

    Salut Loufab, je me suis mal exprimé, mais je sous entendais bien qu'il fallait prendre la plus grande longueur que l'on trouve dans le champ.

    Nota : C'est un des seuls tuto que je n'avais pas encore lu.

    Starec
    J'avais parfaitement compris rassure-toi, c'était plutot pour notre ami(e) celiaaa.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    cela fait quelque jours que j'essaie de dimensionner dynamiquement la largeur des colonnes de ma zone de liste.
    J'ai essayé de reprendre le code =de Loufab et je vous avoue avoir eu du mal à comprendre.

    Quelqu'un peut m'expliquer son code? ou bien me guider vers une autre piste?

    Merci par avance

  10. #10
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Points : 76
    Points
    76
    Par défaut
    Je vous serai reconaissante de mettre mon post en non résolu c

    Merci bien

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 587
    Points
    24 587
    Par défaut
    Bonjour,

    Je viens de voir ton MP (beaucoup de boulot en ce moment ).

    As-tu lu le paragraphe complet ? les explications sont très importante pour comprendre ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    For entCurrLigne = 0 To Me.lst_champs.ListCount - 1
    Cette boucle est conditionnée par lst_champs (une liste des champs d'une table sélectionnée) dans ton cas il s'agit d'utiliser les champs de la zone liste.
    Pour cela il te faut faire une boucle sur un objet Recordset avec la même source que celle de la liste.

    C'est pas trop optimisé on pourrait utiliser le recordset lui-même pour faire la recherche de cette longueur.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/08/2010, 18h23
  2. Taille des colonnes via VBA
    Par mooh91 dans le forum Access
    Réponses: 7
    Dernier message: 15/02/2007, 19h30
  3. [Swing][JTable]Tailles des colonnes du tableau
    Par LordBlaize dans le forum Composants
    Réponses: 6
    Dernier message: 20/02/2006, 17h46
  4. régler la taille des colonnes d'un DBGrid
    Par nous2 dans le forum Bases de données
    Réponses: 6
    Dernier message: 01/10/2005, 16h35
  5. [JTable] Changer la taille des colonnes
    Par lilou77 dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 10h26

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