Automatiser la largeur d'une combobox quand on la déroule

Bonjour,

J'ai une formulaire avec une combobox contenant des données provenant d'une plage de cellules d'une de mes feuilles Excel et j'ai vu que je pouvais changer la largeur de la liste déroulée avec ListWidth dans les propriétés de la combobox.

Cependant, je souhaiterais rendre automatique la largeur de la liste quand elle est déroulée. Cette largeur doit correspondre à ma chaine de caractère la plus longue contenue dans la liste.

Par exemple :

Ma combox s'appelle CB1. Elle contient la liste suivante issue d'une plage de cellules : Rennes, Brest, Lille, Strasbourg, Paris.

Je souhaite que ListWidth s'adapte automatiquement à la chaine la plus longue, ici : Strasbourg.

Si Strasbourg est supprimé de ma plage de cellules remplissant la combobox, alors ListWidth devra être de la taille de Rennes.

Comment faire ? Merci :)

Bonjour,

En fait, c'est assez compliqué. La largeur est définie en points et dépend donc de la police et de la taille des caractères employés. Avec des polices à pas variables, il n'y a pas de rapport évident entre le nombre de caractères et la largeur occupée. Un exemple :

capture d ecran 20221117 130828

J'espère pour toi que quelqu'un me contredira

Daniel

bonjour,

Me.ListBox1.ColumnWidths = "2,5 cm;2 cm;1 cm"

mais tu peux le définir directement dans la propriété du contrôle !

Bonjour le forum

Bonjour Vinci-Binci, DanielC, disorthographie

Allez, c'est parti pour un 2 en 1 (ListWidth de la liste et Width du Cbo) avec ce fichier.

592-en-1.xlsm (21.32 Ko)

Bonjour à tous,

@Ericcool02 : est-ce que tu peux expliquer tes coefficient "magiques" ? 4, 15, 40 ?

Re le fil

@DanielC - Bonjour, je ne suis qu'un bidouilleur qui au fil de mes "pérégrinations" sur le net, a récupéré moult trucs & astuces que je redistribue ici et là. Pour le coup, j'ai bidouillé ce que j'avais dans ma besace pour que notre ami Vinci-Binci soit satisfait (enfin je l'espère). Le principal est que cela fonctionne.

Bonjour Ericcool02,

j'ai bidouillé ce que j'avais dans ma besace

en revanche tu dois s'avoir pourquoi c'est sorti de ta besace!

RE le fil

@dysorthographie : re bonjour. je ne saisis pas le sens de ta phrase ? Pour ma part, j'ai sorti de ma besace ces 2 codes pour répondre aux besoins de Vinci-Binci.

Bonne soirée

@Ericcool02 : Merci.

@DanielC : mais de rien - C'est avec plaisir que j'apporter mon aide, lorsque je le peux, à mon petit niveau.

Bonne soirée

Bonjour à tous,

Merci pour ces premières réponses.

Ericcool02, j'ai apporté une modification au code pour que ce soit la largeur de la liste déroulée s'adapte et non celle de la combobox en elle-même.

Cependant, il semble y avoir une limite de nombre de caractères à partir de laquelle cela ne fonctionne plus (le texte reste couper)...

image

Bonne journée

Re le fil

@Vinci-Binci : modifie... modifie... Chez moi cela fonctionne sans modifier.

cbo

Re le fil

@Vinci-Binci : Et donc cela fonctionne (Oui-Non) après ton passage à 10H55 ?

Bonjour à tous,

En fait; il semble qu'il faille modifier un coefficient selon la taille de la police voulue :

capture d ecran 20221118 143437 capture d ecran 20221118 143304

Daniel

En fait, on retrouve ce code à cette page (en anglas) :

https://stackoverflow.com/questions/25250733/dynamically-adjusting-the-width-of-a-combobox-in-excel-...

CmBox.ListWidth = LWidth*8 'according to the list's Text Font size , you will need to adjust the *8

Où il est indiqué de faire varier le coefficient suivant la police.

Daniel

Re le fil

Pour être passé vers 17H00 puis 20H11 sur son post (sa demande) nous ne serons pas si oui ou non cela lui convient (Vinci-Binci) ...... Pfffffffffffffffff

Bonjour à tous,

Désolé pour ma réponse tardive, je travaillais sur d'autres choses dans le même temps et cette partie développement d'un programme n'était pas ma priorité ... Mais je vais me replonger dedans jusqu'à Noël.

Du coup, de ce que j'ai pu comprendre, c'est qu'il faut que j'adapte le coefficient en fonction de la taille de la police.

Le problème est que je ne sais pas encore qu'elle sera la taille de police de mes formulaire, car ce programme pourra être utilisé sur différentes tailles d'écran et donc je voudrais automatiser l'agrandissement ou réduction des formulaires.

Bonne journée.

Rechercher des sujets similaires à "automatiser largeur combobox quand deroule"