Comment déterminer largeur et hauteur d'une liste déroulante ?

tome4k

XLDnaute Nouveau
Bonjour,
J'ai une feuille Excel où le contenu des cellules est cherché dans une liste, grâce à une liste déroulante.

Le problème : la colonne fait 0,5cm de large, et elle ne doit pas faire plus, par contre la liste déroulante devrait être plus large pour permettre de voir tout le contenu que l'on choisi. Comment rendre la liste déroulante plus large que la colonne ?

Question subsidiaire : le nombre d'éléments affichés en même temps par la liste déroulante est de 8. Comment le modifier ?

Merci d'avance

Grégory
 

Cousinhub

XLDnaute Barbatruc
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Bonjour,
la liste déroulante issue de Données/Validation a une largeur et un nombre de lignes fixes, donc je ne comprends pas ton premier problème...
Pour le deuxième, il faudra se contenter des 8 lignes
Maintenant, en utilisant des combobox issus de la BO Contrôles ou des zones déroulées issues de la BO Formulaire, tu peux contourner ce problème, mais le traitement ultérieur est plus délicat
 

tome4k

XLDnaute Nouveau
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

la liste déroulante issue de Données/Validation a une largeur et un nombre de lignes fixes
C'est ça mon problème : la largeur de la liste déroulante est fixe, et elle est égale à la largeur de la cellule dans laquelle elle se trouve.
J'aimerai que la liste soit plus large que sa cellule, pour que l'ensemble du contenu soit visible dans la liste, mais dans la cellule je n'ai besoin de voir que le début.
 

tome4k

XLDnaute Nouveau
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

quelque soit la largeur de la colonne, la liste de validation a une largeur fixe
surprenant !
j'ai Excel 2003 SP3, partie de Office Pro 2003

Sinon j'essaye de mettre une liste déroulante avec un combobox, mais je ne trouve pas comment déterminer la source des données affichées dans la liste...
 

tome4k

XLDnaute Nouveau
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Bon j'ai trouvé un moyen d'arriver à peu près à ce que je voulais, en utilisant du code récupéré sur un autre post (qui vient de toi bhbh ! ).
Je redimensionne automatiquement la largeur de ma cellule selon qu'elle est sélectionnée ou non, ce qui me permet de tout voir au moment de la sélection, et seulement le début ensuite :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Columns("D:AT").ColumnWidth = 2
If ((Target.Column >= 3 And Target.Column <= 35) And (Target.Row >= 2 And Target.Row <= 59)) Then
    Columns(Target.Column).ColumnWidth = 20
End If
End Sub
 

jeanpierre

Nous a quitté
Repose en paix
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Bonjour tous,

Revoir le post l'ami de bhbh de 11h17 : "Maintenant, en utilisant des combobox issus de la BO Contrôles ............., tu peux contourner ce problème, mais le traitement ultérieur est plus délicat"

Ce type de liste prendra plus d'une colonne, à ton souhait..... mais moins simple à ordonner....

Sinon, la liste issue de la Barre d'outils Formulaire n'aura que la largeur de ta colonne.... et 8 lignes....

Relire.

Jean-Pierre
 

jeanpierre

Nous a quitté
Repose en paix
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Re,

Clic droit sur l'équerre, dans la barre à outils Contrôles, tu selectionnes Zone de liste Modifable, tu dessines à ta convenance, et là, clic droit sur la chose et selection de Propriétés.... et là, ListFillRange, et tu y indiques la zone de ta liste, exemple A1:A25....

Plus facile à faire..... qu'a dire.... surtout de mémoire...

Voilà...

Jean-Pierre
 

Cousinhub

XLDnaute Barbatruc
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Bonjour,
tout dépend de l'origine de la Cbb (Barre d'outils Contrôle ou Formulaire)
Le plus simple est la BO Contrôle, qui utilise les mêmes propriétés qu'une Cbb d'un USF

un exemple pour rentrer les données de la colonne B, sans doublons :

Code:
Sub remplit_combo()
Dim Cell As Range
  Dim mondico, temp
    'Supprime les données existantes dans le ComboBox
 Sheets("Feuil1").ComboBox1.Clear
 Set mondico = CreateObject("Scripting.Dictionary")
  For Each Cell In Sheets("Feuil1").Range("B2", Sheets("Feuil1").[B65000].End(xlUp))
    If Not mondico.Exists(Cell.Value) Then
      mondico.Add Cell.Value, Cell.Value
    End If
  Next Cell
  temp = mondico.Items
  Sheets("Feuil1").ComboBox1.List = temp
End Sub
 

tome4k

XLDnaute Nouveau
Re : Comment déterminer largeur et hauteur d'une liste déroulante ?

Merci Jean-Pierre et bhbh,

pour la combobox ça marche en utilisant la propriété ListFillRange.

Mais je dois remplir un tableau à 2 dimensions, qui a environs 60 lignes et 60 colonnes, avec une liste déroulante sur chaque cellule (la valeur choisie peut être différente pour chaque cellule). Je me vois mal ajouter une combobox pour chacune de ces 3600 cellules !!
 

Discussions similaires

Statistiques des forums

Discussions
313 051
Messages
2 094 796
Membres
106 094
dernier inscrit
Mat65