2017-10-05 25 views
0

J'utilise le code suivant pour remplir un ListBox. La colonne 1 de la zone de liste provient de la colonne F de ma feuille de calcul et la deuxième colonne de la zone de liste provient de la colonne suivante. Mais je veux que cette deuxième colonne ListBox provienne de la colonne D de la feuille de calcul (2 à gauche). Et je ne peux pas faire fonctionner le décalage comme je le veux.ListBox VBA avec des colonnes de décalage

Private Sub UserForm_Initialize() 

    Dim dic As Object 
    Dim rng As Range 
    Dim ky As Variant 

    Set dic = CreateObject("Scripting.Dictionary") 

    Set rng = Sheet4.Range("F2") 

    Do 
     If Not dic.exists(rng.Value) Then 
      dic.Add rng.Value, rng.Offset(, 1).Value 
     Else 
      dic(rng.Value) = dic(rng.Value) + rng.Offset(, 1).Value 
     End If 
     Set rng = rng.Offset(1) 
    Loop Until rng.Value = "" 

    For Each ky In dic.keys 
     With BWListBox3 
      .AddItem 
      .List(.ListCount - 1, 0) = ky 
      .List(.ListCount - 1, 1) = Application.Text(dic(ky), "[h]:mm") 
     End With 
    Next ky 

End Sub 

Répondre

1

2 à gauche?

If Not dic.exists(rng.Value) Then 
     dic.Add rng.Value, rng.Offset(, -2).Value 
    Else 
     dic(rng.Value) = dic(rng.Value) + rng.Offset(, -2).Value 
    End If 
+0

Cela me donne « Erreur d'exécution 13: incompatibilité de type » – phelbin

+0

Je viens d'essayer moi-même et il a bien fonctionné pour moi ...? – braX

+0

Ok ... J'ai mis en place un exemple de classeur, et vous avez raison le code fonctionne. Donc, une idée de ce qui pourrait causer la discordance dans mon cahier de travail? – phelbin