Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 [Résolu] Erreur: l'indice n'appartient pas à la sélection avec tableau

Lone-wolf

XLDnaute Barbatruc
Bonjour le Forum

J'ai un souci avec cette macro à la ligne Redim Preserve

VB:
Private Sub Lister()

    With ActiveSheet
        Bd = .Range("a2:h" & .Range("h" & Rows.Count).End(xlUp).Row)
        n = 0
    End With

    ListBox1.Clear
    For i = LBound(Bd) To UBound(Bd)
        If Bd(i, 1) Like CbEleve & "*" Then
           n = n + 1: ReDim Preserve Tbl(1 To UBound(Bd, 2), 1 To n)
            For k = 1 To UBound(Bd, 2): Tbl(k, n) = Bd(i, k): Next k
        End If
    Next i
    ListBox1.Column = Tbl

    For i = 0 To ListBox1.ListCount - 1
        ListBox1.List(i, 6) = Replace(ListBox1.List(i, 6), ",", ".")
    Next i

End Sub

Je ne comprends pas pourquoi cette ligne provoque une erreur, pourtant je l'utilise dans d'autres formulaires sans problèmes.
Si vous pourriez m'éclairer (malgré qui fasse déjà jour ).

EDIT: j'ai trouvé. Il fallait initialiser la Listbox.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Normal ! dans la procédure que j'ai modifié , je modifie la Colonne 6
Alors que dans ton fichier c'est la 7 ème qui doit être modifiée.....
Donc il faut
VB:
Private Sub Lister()
  Dim x As Integer
  Dim DerLgn As Integer
    With ActiveSheet
         DerLgn = .Range("a" & Rows.Count).End(xlUp).Row
             Bd = .Range("a2:h" & DerLgn).Value
    End With
    n = 0   
    For i = LBound(Bd) To UBound(Bd)
        If Bd(i, 1) Like CbEleve & "*" Then
            n = n + 1: ReDim Preserve Tbl(1 To UBound(Bd, 2), 1 To n)
            For k = 1 To UBound(Bd, 2)
                Tbl(k, n) = IIf(k = 7, Replace(Bd(i, k), ",", "."), Bd(i, k))
            Next k
        End If
    Next i   
    ListBox1.Column = Tbl
End Sub
n'hésite pas
jean marie
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…