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

Excel Discussion :

Listes déroulantes dans une feuille avec des colonnes très étroites


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Listes déroulantes dans une feuille avec des colonnes très étroites
    Bonjour

    J’ai mis en place une feuille xl avec 40 colonnes étroites , affichage à 90° Pour lire le texte, et chaque cellule associées à une une liste déroulante.

    Mon souci est que la liste déroulante affiche avec la largeur de la colonne.... donc illisible et inexploitable !

    Avez vous été confronté au même problèmes. Quelles solutions auriez vous ?
    je ne peux mettre ma ligne en colonne (ce qui résoudrais le problème d affichage avec une colonne large) car j utilise les lignes pour d autres fonctionnalités.

    Merci de votre aide
    K

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    Difficile de te proposer quelque-chose d'adéquat sans connaître tous tes besoins d'affichage.

    Utilise peut-être une listbox activex en lieu et place de ta liste déroulante actuelle.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    passer ta liste de validation en USF sur la cellule active, mais c'est du VBA

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Daranc
    Pourquoi un userform (bien plus compliqué que de placer un contrôle activex Listbox) ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour Daranc
    Pourquoi un userform (bien plus compliqué que de placer un contrôle activex Listbox) ?
    effectivement, mais il semble avoir un problème de largeur pour ses listes de validation. L'USF reste à la largeur donné au départ. C'est un poil lourd comme solution, je ne le nie pas
    mais ça devient ...lisible. Après c'est ce que je signalais , c'est du VBA . (et aussi j'ai une aversion pour les activeX ...c'est viscérale ) donc comme je n'utilise pas. J'ai pas l'ouverture
    / connaissance de leur fonctionnement

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    Exemple de formulaire pour remplacer Données/Validation

    Le comboBox est alimenté par la propriété RowSource

    Boisgontier
    http://boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

  7. #7
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour
    Merci à tous de vos retours
    Je vais explorer,car c’est nouveau pour moi ces “listbox activex” et “combo box”

    Pour apporter plus d’info sur mon sujet, je travaille sur des matrices de polyvalence avec 40 voire 80 colonnes qui sont de 10 à 15 points de large et qui ont une hauteur de ligne de 80 points pour afficher chaque activité à 90°. Je recherche à présenter une liste identique d’activités pour chacune des 40 voire 80 cellules.
    Si vous avez d’autres idées ou des exemples de matrices de polyvalence, merci de vos conseils et liens que vous connaîtriez.

    Je vous tiendrai au courant de mes avancées sur ces listes avant de clore le sujet
    Cordialement
    K

  8. #8
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    @boisgontierjacques

    Merci pour le fichier joint, cela est exactement ce qui devrait m'aider pour afficher des listes.
    J'ai copié l'onglet dans mon classeur mais rencontre quelques difficultés pour l'intégrer, comme par exemple:
    - dans mon classeur, le double clic ne fonctionne plus et m'affiche une erreur. J'ai affiché le code mais ne vois pas où changer "peut être" le nom du classeur...
    - comment affecter à une cellule ou plage de cellules le fait de faire référence au menu déroulant ?
    - comment affecter à mes cellules la référence au menu déroulant dans l'onglet contenant les listes ?
    - comment élargir la boite de dialogue qui présente la liste ? (j'ai trouvé les valeurs pour positionner la boite de dialogue mais pas la largeur)

    J'ai compris comment afficher le code vba
    Je pense comprendre que la boite en bas à gauche du code fait référence à une active box ou combo box au regard des rubriques
    Cependant vous le comprenez, je pars de très loin... même si j'ai il y a longtemps pratiqué des macro et actuellement du swift

    si vous pouvez prendre un peu de temps ou me donner des liens de tuto pour intégrer, cela m'aidera bien
    par avance merci
    k

  9. #9
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    @boisgontierjacques
    vrai que le code est d'une simplicité surprenante (dans le sens ou le nombre de lignes est succinct) par contre je ne vois pas comment tu alimentes le Combobox

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    via le B-A-BA, sans code ‼   Juste ouvrir les propriétés de ce ComboBox

    ___________________________________________________________________________________________________________
    Je suis Paris, New-York, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonsoir,

    >je ne vois pas comment tu alimentes le Combobox

    Regarder la propriété RowSource du ComboBox.
    Ceci pourrait être fait dans Initiliaze du formulaire par Me.comboBox1.List=Range("H2:H26").value

    Boisgontier

  12. #12
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour
    J’ai avancé dans la compréhension du code de boisgontierjacques mais bloque sur un point
    Je voudrais spécifier une plage précise dans un autre onglet
    J ai tenté de remplacer «*target.column = 1*» par «*target.cells = range(«A10:B20*»)*» et quelques autres variantes mais le code plante et je ne m’en sors pas....
    Pouvez vous m’aider en me donnant la bonne formulation pour cibler une plage dans un autre onglet
    Merci
    K

  13. #13
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Range("A2:A20"), Target) Is Nothing And Target.Count = 1 Then
        UserForm1.Top = Target.Top + 110 - Cells(ActiveWindow.ScrollRow, 1).Top
        UserForm1.Left = 150
        UserForm1.Show
      End If
      Cancel = True
    End Sub
    Si la liste est longue, on peut faire une recherche intuitive type Google en frappant les premières lettres.

    Boisgontier
    Fichiers attachés Fichiers attachés

  14. #14
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    -relire mon message (N° 4)
    - je ne sais pas où vous allez ainsi, avec un userform. Je vous rappelle que les coordonnées d'un userform ne sont pas déterminées en points, mais en PIXELS et par rapport non à l'angle supérieur gauche de la feuille de calcul (activeWindow), mais par rapport à l'angle supérieur gauche de l'ECRAN, alors que les coordonnées d'une cellule sont déterminées en POINTS, par rapport à l'angle supérieur gauche de la feuille active.

    Pourquoi se mettre dans un tel enfer alors que :
    - une listbox activex est insérable sur la feuille de calcul
    - que le positionnement d'un tel contrôle (ses coordonnées) est déterminé en POINTS
    - et donc que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    listbox1.left = range("B4").left
    listbox1.top = range("B4").top
    placera par exemple Listbox1 à l'angle supérieur gauche de la cellule B4, tout simplement.

    Rien n'est dès lors plus simple que :
    - de jouer avec la propriété visible de cette listbox
    - de l'alimenter des articles que l'ont veut qu'elle affiche en fonction de la cellule concernée (expressions conditionnelles éventuelles si différentes listes)
    - de faire ces deux choses lors de l'évènement selection_change (ou autre si l'on y tient)
    - de donner à la cellule concernée la valeur du choix dans la listbox.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  15. #15
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    @boisgontierjacques
    Merci pour ta réponse qui m’aide bien
    J’ai un ultime besoin avant de clore qui est de désigner dans le code un autre onglet où le menu déroulant apparaîtrait de telle sorte à avoir les listes sur un onglet dédié.
    J ai essayé en mettant “worksheet(“Feuil2”).intersec....” mais là encore, je manque de connaissances sur vba

    Merci encore de ton aide pour me dépanner
    Apres cela, je vais prendre un vrai temps d apprentissage
    Cordialement
    K

  16. #16
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,


    Rowsource a été supprimé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Range("A2:A20"), Target) Is Nothing And Target.Count = 1 Then
        UserForm1.Top = Target.Top + 110 - Cells(ActiveWindow.ScrollRow, 1).Top
        UserForm1.Left = 150
        UserForm1.Show
      End If
      Cancel = True
    End Sub
    Code du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub UserForm_Initialize()
      Dim f
      Set f = Sheets("listes")
      Me.ComboBox1.List = f.Range("A2:A" & f.[A65000].End(xlUp).Row).Value
      If Val(Application.Version) > 10 Then SendKeys "{F4}"
    End Su
     
    Private Sub ComboBox1_Change()
      ActiveCell.Value = Me.ComboBox1
      Unload Me
    End Sub
    Boisgontier
    http://boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

  17. #17
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Bonsoir,

    >je ne vois pas comment tu alimentes le Combobox

    Regarder la propriété RowSource du ComboBox.
    Ceci pourrait être fait dans Initiliaze du formulaire par Me.comboBox1.List=Range("H2:H26").value

    Boisgontier
    merci je regarde ceci des que je suis sur le pc boulot
    je fais toujours du .add item

  18. #18
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    @Unparia
    je vois ce que tu veux dire, en regardant avec des fenêtre réduite pour suivre les explication de Jacques, effectivement le combobox se positionne hors feuille ( d'habje travaille toujours en plein écran, ce qui fait qu'au ça ne m'a au final jamais gêné )
    @JacquesBoigondier Vu effectivement c'est rapide (ça m'apprendra à pas tout regarder sur les objets )

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    d'habje travaille toujours en plein écran, ce qui fait qu'au ça ne m'a au final jamais gêné
    Ah ? Tu crois ?
    Tu te trompes. Il suffit que le DPI de l'écran soit modifié pour tout chambouler

    Tu crois vraiment que tout le monde reste en 96 ppp ? --->> Patricktoulon, par exemple et entre autres, a configuré en 120 ppp. Et moi-même en encore un autre DPI
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par unparia Voir le message
    Ah ? Tu crois ?
    Tu te trompes. Il suffit que le DPI de l'écran soit modifié pour tout chambouler

    donc...
    je vais devoir me coller au Activ'X

    a mon age ...diantre <-- et je pèse mes mots

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/11/2016, 16h46
  2. [XL-2007] Créer une liste déroulante dans une cellule avec vba
    Par destroyed dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2014, 09h19
  3. Réponses: 5
    Dernier message: 21/06/2012, 14h22
  4. [AC-2007] Mise a jour d'une liste déroulante dans une feuille de données
    Par yoyo1664 dans le forum IHM
    Réponses: 1
    Dernier message: 03/03/2011, 06h06
  5. Réponses: 3
    Dernier message: 24/11/2008, 14h09

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