Bonjour à tous,
J'aimerai juste récupérer le nom de mes colonnes dans un Array. Connaissez vous juste la synthaxe pour récupérer le nom des Headers avec une boucle for de 0 a Listbox.count ?
Merci d'avance
Bonjour à tous,
J'aimerai juste récupérer le nom de mes colonnes dans un Array. Connaissez vous juste la synthaxe pour récupérer le nom des Headers avec une boucle for de 0 a Listbox.count ?
Merci d'avance
Bonjour,
Si la BD a été spécifiée dans Rowsource
Boisgontier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set bd = Range(Me.ListBox1.RowSource) Tbl = Application.Index(bd.Offset(-1).Value, 1) MsgBox Tbl(1) & " " & Tbl(2)
http://boisgontierjacques.free.fr
Les lignes rouge ne sont pas dynamique, au ligne de mettre un numéro de colonne je voudrais faire un Match avec les noms de colonnes souhaitées comme ca si je change l'ordre de mas colonnes le code fonctionne encore.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 Private Sub UserForm_Initialize() Application.ScreenUpdating = False Call Init Set f = Sheets("Sheet1") Set d = CreateObject("Scripting.Dictionary") Set d2 = CreateObject("Scripting.Dictionary") Set d3 = CreateObject("Scripting.Dictionary") ColVisu = ColToSelect Bd = f.Range("A2:BH" & f.[A65000].End(xlUp).Row).Value x = 15 y = Me.ListBox1.Top - 12 For Each k In Split(ColVisu, ",") Set Lab = Me.Frame1.Controls.Add("Forms.Label.1") Lab.Caption = f.Cells(1, Val(k)) Lab.Top = y Lab.Left = x x = x + f.Columns(Val(k)).Width temp = temp & f.Columns(Val(k)).Width & ";" Next k temp = Left(temp, Len(temp) - 1) Me.ListBox1.ColumnCount = UBound(Split(ColVisu, ",")) + 1 Me.ListBox1.ColumnWidths = temp Dim Tbl: ReDim Tbl(1 To nbrows, 1 To nbcolumns) j = 0 For Each k In Split(ColVisu, ",") j = j + 1 For i = 1 To nbrows - 1 Tbl(i, j) = Bd(i, Val(k)) If IsNumeric(Tbl(i, j)) Then Tbl(i, j) = format(Tbl(i, j), "0.00") On Error Resume Next Next i Next k ListBox1.List = Tbl For i = LBound(Tbl) To UBound(Tbl) d(Tbl(i, 12)) = "" Next i temp = d.keys Tri temp, LBound(temp), UBound(temp) Me.ComboBox1.List = temp Me.ComboBox1.AddItem ("ALL") For i = LBound(Tbl) To UBound(Tbl) d2(Tbl(i, 10)) = "" Next i temp2 = d2.keys Tri temp2, LBound(temp2), UBound(temp2) Me.ComboBox2.List = temp2 Set plage = Tbl Set plage = plage.Offset(1).Resize(plage.Rows.count - 1) Me.ListBox1.List = plage 'Me.Frame1.Width = 300 Me.Frame1.ScrollWidth = Me.ListBox1.Width + 10 Me.Frame1.ScrollBars = 1 TriMult Tbl, LBound(Tbl), UBound(Tbl), 1 ComboBox3.Visible = False Me.ComboBox4.AddItem ("Best in Class: Qlty Bck[1,4] Valuation Group 1") Me.ComboBox4.AddItem ("Qlty Bck[1,4] Valuation Group 1&2") Me.ComboBox4.AddItem ("Quality Bck[1,4]") Me.ComboBox4.AddItem ("Qlty Bck[1,4] Valuation Group 1 Growth Bucket [1,5]") Me.TextBox5 = 0 End Sub
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
36
37 Dim ColVisu(), ColVisuNom() Private Sub UserForm_Initialize() Set f = Sheets("feuil1") Bd = f.Range("A2:G" & f.[A65000].End(xlUp).Row).Value ColVisu = Array(1, 2, 4, 7) ' Colonnes à visualiser ReDim ColVisuNom(0 To UBound(ColVisu)) ' Noms des colonnes For i = LBound(ColVisu) To UBound(ColVisu) ColVisuNom(i) = f.Cells(1, ColVisu(i)) Next i '-- en têtes de colonne ListBox x = 27 y = Me.ListBox1.Top - 12 For Each k In ColVisu Set Lab = Me.Controls.Add("Forms.Label.1") Lab.Caption = f.Cells(1, k) Lab.Top = y Lab.Left = x x = x + f.Columns(k).Width * 1# temp = temp & f.Columns(k).Width * 1# & ";" Next temp = Left(temp, Len(temp) - 1) Me.ListBox1.ColumnCount = UBound(ColVisu) + 1 Me.ListBox1.ColumnWidths = temp '--- Dim Tbl: ReDim Tbl(1 To UBound(Bd), 1 To 45) j = 0 For Each k In ColVisu j = j + 1 For i = 1 To UBound(Bd) Tbl(i, j) = Bd(i, k) If IsNumeric(Tbl(i, j)) Then Tbl(i, j) = Format(Tbl(i, j), "0.00") If IsDate(Tbl(i, j)) Then Tbl(i, j) = Format(Tbl(i, j), "dd mmm yyyy") Next i Next k ListBox1.List = Tbl End Sub
Boisgontier
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager