J'utilise un code pour afficher un formulaire en plein écran. Je voudrais ajuster l'alignement des colonnes d'une ListBox avec des textboxs correspondantes placées au-dessus de celle-ci.
Lorsque j'utilise la propriété ColumnWidths, c-à-d en entrant des valeurs; les colonnes sont décalées suivants les dimensions de l'écran. Or, c'est très gênants visuellement. En ajustant par code, je pense que ça résoudra le problème.
Je remplacerais les textboxes par une petite Listbox2 aux propriétés identiques à celle de ta ListBox1. Quand tu sélectionnes un élément de la ListBox1, tu renvoies les données de cet élément vers la ListBox2. Tu n'auras pas les séparations mais tu sera parfaitement aligné.
Mon formulaire est beaucoup plus fourni en contrôles. Dans le fichier joint, j'ai simplifié ce dernier. J'ai laissé juste ce qu'il faut pour illustrer mon problème. Les textboxs en question me servent à modifier la ligne sélectionnée dans la Listbox. Je ne peux donc pas adopter ta proposition.
Bonjour Cath
Bonjour le fil , le Forum
une approche (redimensionnement , alignement des Controls)
Edit : Tu peux modifier la couleur de fond et de texte des TextBox entêtes (Fond comme le Userform et le texte en Blanc)
Fichier changé.
jean marie
Bonjour Cath
Bonjour le fil , le Forum
une approche (redimensionnement , alignement des Controls)
Edit : Tu peux modifier la couleur de fond et de texte des TextBox entêtes (Fond comme le Userform et le texte en Blanc)
Fichier changé.
jean marie
Désolé Boisgontier , je n'avais pas rafraichi la page.
Justement, j'étais sur ton site et j'ai trouvé des exemples pour mettre en place des labels ajustés aux colonnes d'une listbox.
Par contre moi, je voudrais faire l'inverse, soit ajuster les colonnes par rapport aux textboxs.
Mais là, je ne sais pas comment m'y prendre.
Merci pour ton orientation. je vais essayer de m'y retrouver.
Bonjour.
Ce code à la fin de la UserForm_Activate a l'air pas mal :
VB:
Dim TBx As MSForms.TextBox, I&, TCW$(0 To 7)
For I = 0 To 7
Set TBx = Me("TextBox" & Choose(I + 1, 2, 1, 5, 9, 8, 6, 7, 12))
TCW(I) = TBx.Width & "pt"
Next I
Me.ListBox1.ColumnWidths = Join(TCW, ";")
Désolé @ChTi160, un peu dépassé pour répondre à vos propositions.
En effet, ta solution est bonne. Je vais essayer de passer sur mon classeur de travail pour adapter et reviendrai aux nouvelles.
Tous mes remerciements à toi, @BOISGONTIER, @Dranreb et à tous ceux et celles qui auraient consulté cette discussion.
Bonjour.
Ce code à la fin de la UserForm_Activate a l'air pas mal :
VB:
Dim TBx As MSForms.TextBox, I&, TCW$(0 To 7)
For I = 0 To 7
Set TBx = Me("TextBox" & Choose(I + 1, 2, 1, 5, 9, 8, 6, 7, 12))
TCW(I) = TBx.Width & "pt"
Next I
Me.ListBox1.ColumnWidths = Join(TCW, ";")