XL 2013 VBA problème remplissage ListBox avec .Column

agourn

XLDnaute Junior
Bonjour à tous,
merci de voir ce code qui me donne un message d'erreur : impossible de définir la propriété Column.
VB:
With Me.malistbox

Nb_list=.listcount

for i=0 to Nb_List-1

x=.List(i)

  'code pour calculer 6 paramètres Aj, j=1 à 6 fonction de x

.column(1,i)=A1

.column(2,i)=A2

'etc



next i
merci à vous
 
Solution
Bonjour agourn ,Thierry ,le Forum
je pensais a un truc comme ça ! Lol
VB:
Private Sub UserForm_Initialize()
Dim T As Variant
Dim f As Worksheet
Dim x  As Long
 f = Worksheets("A")
 T = f.Range("A2:A21").Value
    With Me.ListBox1
           .ColumnHeads = False
           .ColumnCount = 7
           .ColumnWidths = "35;100;40;40;40;60;50"
        For L = 1 To UBound(T, 1)
            x = T(L) * 100
           .AddItem x
                    A1 = Application.VLookup(x, PVLP.Range, 2, False)
                    A2 = Application.VLookup(x, PVLP.Range, 3, False)
                    A3 = Application.VLookup(x, PVLP.Range, 4, False)
                    A4 = Xquantite(i)
                    A5 = A3 / A1
                    A6 = A4 / A2...

_Thierry

XLDnaute Barbatruc
Repose en paix
Re bonjour @ tous

Désolé Jean Marie, voici la preuve par neuf sur fichier démo.

NOT GOOD :
VB:
Option Explicit
Private Sub UserForm_Initialize()
Dim R As Range
Dim T As Variant

Set R = Range("A2:A21")
T = R

With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = "80, 80, 80"
.List = T
End With
End Sub


Private Sub CommandButton1_Click()
Dim x As Integer

With Me.ListBox1
For x = 0 To .ListCount - 1
.Column(1, x) = x + 1 & "-Zaza"
.Column(2, x) = x + 1 * 100
Next x
End With

End Sub


GOOD GOOD :
VB:
Option Explicit
Private Sub UserForm_Initialize()
Dim R As Range, C As Range

Set R = Range("A2:A21")

With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = "80, 80, 80"

For Each C In R
.AddItem C
Next C
End With
End Sub


Private Sub CommandButton1_Click()
Dim x As Integer

With Me.ListBox1
For x = 0 To .ListCount - 1
.Column(1, x) = x + 1 & "-Zaza"
.Column(2, x) = x + 1 * 100
Next x
End With

End Sub

Tout dépend donc bien depuis quelle méthode on a commencé à alimenter la ListBox...

Bon Dimanche
@+Thierry

EDIT et j'ai essayé aussi :
VB:
With Me.ListBox1
For x = 0 To .ListCount - 1
.List(x, 1) = x + 1 & "-Zaza"
.List(x, 2) = x + 1 * 100
Next x
End With

Même "punition" si laListBox1 n'est pas alimentée originalement par AddItem...
 

Pièces jointes

  • XLD_agourn_Test_MaListBox_Column_Add_Items.xlsm
    19.1 KB · Affichages: 13
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
Re @agourn , JM
Oui tu l'avais écrit, et du coup ça m'a turlupiné, et du coup j'ai fait le fichier démo pour en avoir le coeur net !
Bien à vous
@+Thierry

EDIT PS pour Jean Marie, oui je vais bien merci, juste un peu enquilosé après le confinement, mais bon on reprend du poil de la bête ! Et toi à quand un nouvel ordi alors ?
 

ChTi160

XLDnaute Barbatruc
Bonjour agourn ,Thierry ,le Forum
je pensais a un truc comme ça ! Lol
VB:
Private Sub UserForm_Initialize()
Dim T As Variant
Dim f As Worksheet
Dim x  As Long
 f = Worksheets("A")
 T = f.Range("A2:A21").Value
    With Me.ListBox1
           .ColumnHeads = False
           .ColumnCount = 7
           .ColumnWidths = "35;100;40;40;40;60;50"
        For L = 1 To UBound(T, 1)
            x = T(L) * 100
           .AddItem x
                    A1 = Application.VLookup(x, PVLP.Range, 2, False)
                    A2 = Application.VLookup(x, PVLP.Range, 3, False)
                    A3 = Application.VLookup(x, PVLP.Range, 4, False)
                    A4 = Xquantite(i)
                    A5 = A3 / A1
                    A6 = A4 / A2
                                
           .List(.ListCount - 1, 1) = A1
           .List(.ListCount - 1, 2) = A2
           .List(.ListCount - 1, 3) = A3
           .List(.ListCount - 1, 4) = A4
           .List(.ListCount - 1, 5) = A5
           .List(.ListCount - 1, 6) = A6
        Next L
    End With
End Sub
Non testé !
Bonne journée
jean marie
 

Discussions similaires

Réponses
17
Affichages
818
Réponses
6
Affichages
364

Statistiques des forums

Discussions
312 169
Messages
2 085 909
Membres
103 031
dernier inscrit
Karmeliet69