Merci cerede2000,
ça faisait déjà quelque temps que je cherchais comment
sélectionner un tableau, sauf la ligne de titre.
Bon we!
Version imprimable
Merci cerede2000,
ça faisait déjà quelque temps que je cherchais comment
sélectionner un tableau, sauf la ligne de titre.
Bon we!
De rien ;)
Ce que je trouve dommage dans la méthode Resize c'est qu'elle ne fonctionne pas comme Offset
Resize(-1) devrais juste retirer une ligne dans la Range actuelle plutôt que de devoir préciser le nouveau nombre de lignes...
Merci pour le tableau maintenant c'est top.... mais....
maintenant c'est le comptage des lignes que je pointe qui déconne. Je ne détecte plus la première ligne de donnée de mon tableau
Quand je coche la premiere et la 2ieme ligne, je n'obtient que 2 quand je fais le test :
j'ai esseyé de changer le .ListCount avec -2 ou sans rien c'est pas mieux.Code:
1
2
3
4
5
6
7
8 Private Sub CommandButton3_Click() With ListBox1 For J = 1 To .ListCount - 1 If .Selected(J) = True Then mess = mess & J & vbCrLf Next End With MsgBox mess End Sub
AU SECOURS !!! :P
re
c'est normal
si tu utilise offset(1,0) dans ta plage la ligne 1 du sheet devient les entête de la listbox alors qu'avant c'estait la premiere ligne de la listbox
c'est pour cela que je bouclais sur le selected(i) en commençant par 1 puisque les items d'unelistbox comme les variable tableaux et autre commence par 0 !!!!!!!
autrement dit listbox.listt0,1) = la première valeur de ta list
donc pour conclure tu boucle a partir de zero et dans mess tu ajoute +1 a chaque fois et +1 pour que ca corresponde a tes lignes du sheets
wagadougou!!!!!;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub CommandButton1_Click() With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then mess = mess & i + +1+1 & vbCrLf ' tu peut mettre 2 bien entendu Next End With MsgBox mess End Sub Private Sub ListBox1_Click() MsgBox ListBox1.ListIndex End Sub Private Sub UserForm_Activate() Dim plage As Range, i As Long, large With Sheets("Ventes") Set plage = .Range("A1").CurrentRegion.Offset(1, 0) For i = 1 To plage.Columns.Count: large = large & ";" & Round(plage.Columns(i).Width): Next ' on capture la largeur des colonnes large = Mid(large, 2, 200) With Me.ListBox1 .RowSource = plage.Address .ColumnHeads = True .ColumnWidths = large .ColumnCount = plage.Columns.Count .ListStyle = 1 .MultiSelect = 1 End With End With End Sub
Super.
Un grand merci.
Ça Fonctionne super bien :D :D :D :D
Bonjour,
J'aurai besoin d'aide s'il vous plait pour comprendre mon erreur.
J'essaie de faire le même job que décrit dans la discussion, mais aucune valeur ne s'affiche. Les lignes sont présentes, mais pas les valeurs
Ci-dessous mon code:
Pièce jointe 607230Code:
1
2
3
4
5
6
7
8
9 With ListBox_DataOut .ColumnHeads = True .ColumnWidths = "100;120;100;100;120" .ListStyle = fmListStyleOption .RowSource = Sh_Data.Range(Lo.DataBodyRange.Address).Address .ColumnCount = Lo.ListColumns.Count .MultiSelect = fmMultiSelectMulti End With
Lo représente un listobject
De plus j'ai ma "ListBox" qui se rétrécie et je ne sais pas pourquoi. Ci-dessous la version de base
Pièce jointe 607231
Je vous remercie d'avance pour votre aide.