Aligner le texte dans Listbox concatenée

jerome23

XLDnaute Nouveau
Bonsoir à tous les couche tard!!

c'est avec mon cerveau en compote que je vous pose cette dernière question avant de rejoindre morphée..

savez vous comment aligner le texte dans une listbox?

J'utilise sans succes le code ci-dessous. effectivement, il "formate" la variable sur 30 caractères, mais j'ai l'impression qu'un espace ne vaut pas une lettre majuscule... en tout cas, le texte est pas aligné.

j'alimente ma listebox avec des additem (en fonction d'une condition) en concaténant trois variables.

en résumé ca donne ce bout de code:

dim var1 as string*30
dim var2 as string*15
dim var3 as string*15

listbox1.additem (var1 &" - "& var2 &" - "& var3)

et en gros ca va donner ca:

Monsieur TARTANPION - 04 25 34 45 56 - PARIS
Madame UNETELLE - 01 23 34 45 56 - MARSEILLE
Monsieur MACHIN - 02 34 45 56 67 - LILLE

et je voudrais que ca soit aligné verticalement....

Merci encore à tous d'avance pour vos réponses.
 

jerome23

XLDnaute Nouveau
Re : Aligner le texte dans Listbox concatenée

en cherchant un peu sur le site, j'ai vu qu'on pouvait fair une listbox à 3 colonnes, ce qui m'irait bien et qui pourrait tres certainement résoudre mon probleme.

par contre, j'ai bine compris qu'on pouvait faire la liste avec:

listbox1.list = range("A1:C3000") par exemple

mais dans mon cas, je remplis chaque ligne en fonction d'un test. du type:

listbox.additem cells(i,6)
et il faudrait rajouter en colonne 2: cells(i,7)
et en colonne 3 cells(i,8)

ca m'a l'air assez compliqué...
 

job75

XLDnaute Barbatruc
Re : Aligner le texte dans Listbox concatenée

Bonsoir,

Pour aligner les données dans la ListBox, créer des colonnes en renseignant la propriété ColumnCount (3 ici).

Pour alimenter la ListBox à partir d'une plage, le plus simple est de renseigner la propriété RowSource.

A+
 

jerome23

XLDnaute Nouveau
Re : Aligner le texte dans Listbox concatenée

Merci pour ta réponse,


Bonsoir,

Pour alimenter la ListBox à partir d'une plage, le plus simple est de renseigner la propriété RowSource.

A+

Je ne peux pas renseigner la liste via rowsource parce que je remplis la listbox via un test dans un fichier.:(

je teste une cellule, si elle est égale à ce que j'ai selectionné avant, alors il m'édite une listbox avec d'autres infos de la meme ligne..
 

bqtr

XLDnaute Accro
Re : Aligner le texte dans Listbox concatenée

Bonjour à tous,

L'alignement des données avec une listbox n'est pas facile à gérer. Regarde du côté des listview.
Chaque colonne à l'exception de la première peut-être personnalisée notamment au niveau de l'alignement. Seule la 1ère colonne doit être alignée à gauche.

Regarde ce lien : ICI

Bonne journée, A+
 

jerome23

XLDnaute Nouveau
Au secours!!

Merci pour la réponse;)

je crois que je vais péter un plomb car ca fait plus de 10h que je passe a essayer de trouver une solution.:mad:

le temps joue contre moi.... sniiiiiiiiffffffffff

1. pour les listview, bonne idée, mais j'ai l'impression que les fonctionnalités sont pas installées sur mon PC... (entreprise) donc j'abndonne

2. pour les listbox multicolonnes, j'arrive pas du tout à lui dire:

i étant le numéro de ligne

si "Variable" = cells(i,6).value alors
listbox colonne 1 additem (cells(i,7))
listbox colonne 2 additem (cells(i,8))
etc....

en fait je sais pas du tout comment on appelle telle colonne.

j'ai tout essayé (presque, puisqu'il doit bien exister une solution)

AU secours!!!!:eek:
 

job75

XLDnaute Barbatruc
Re : Aligner le texte dans Listbox concatenée

Bonjour,

Voir ce fichier et cette macro :

Code:
Private Sub UserForm_Initialize()
Dim tablo(), lig As Byte, n As Byte
For lig = 5 To 9 Step 2
  ReDim Preserve tablo(2, n) 'tableau de [COLOR="red"]3 lignes[/COLOR], nombre de colonnes ajustable
  tablo(0, n) = Cells(lig, 2)
  tablo(1, n) = Cells(lig, 3)
  tablo(2, n) = Cells(lig, 4)
  n = n + 1
Next
[COLOR="Red"]ListBox1.List = Application.Transpose(tablo)[/COLOR]
End Sub

A+
 

Pièces jointes

  • ListBox(1).xls
    41 KB · Affichages: 103
  • ListBox(1).xls
    41 KB · Affichages: 115
  • ListBox(1).xls
    41 KB · Affichages: 112

Lii

XLDnaute Impliqué
Re : Aligner le texte dans Listbox concatenée

Bon jour,

autre exemple (avec gestion de largeur) dans le fichier joint :
Code:
Private Sub UserForm_Initialize()
  With ListBox1
    For li = 12 To 14
      Columns(li - 10).AutoFit 'pour redimensionner les colonnes
      l = Columns(li - 10).Width
      If l > g Then g = l 'pour trouver la plus grande largeur
      .AddItem Cells(li, 2)
      .List(li - 12, 1) = Cells(li, 3)
      .List(li - 12, 2) = Cells(li, 4)
    Next
    .ColumnWidths = g 'pour choisir la plus grande largeur
  End With
End Sub
 

Pièces jointes

  • ListBox MultiColonnes.zip
    6.9 KB · Affichages: 81

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 319
Membres
104 119
dernier inscrit
karbone57