Bonjour à tous,
J'ai un petit soucis en VBA Excel sur une macro attachée à un bouton.
En effet, j'utilise 2 ListView nommées LV_Ref et LV_Files. J'alimente LV_Ref, une ListView de 2 colonnes, à partir d'une feuille Excel contenant une liste de fichiers & n° de version. LV_Files n'est pas développée ici mais j'y reviendrai car j'ai le même problème.
J'ai créé un bouton, Btn_Edit, qui me permet d'accéder à la deuxième colonne de mes éléments de LV_Ref pour pouvoir le modifier à l'aide d'un InputBox.
Donc, quand je clique sur mon bouton Btn_Edit, tout marche parfaitement SAUF pour le deuxième élément de ma ListView qui me produit systématiquement le message d'erreur :
Run-time error : '35600'
Index out of bound
Si quelqu'un a une idée, je suis preneur...
Merci d'avance
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 Sub Btn_Edit_Click() Application.ScreenUpdating = False ' déclaration des variables Dim i As Long, ItemTest As String ' teste si un élément est sélectionné If Not LV_Ref.SelectedItem Is Nothing Then ' i est l'index de l'élément sélectionné i = LV_Ref.SelectedItem.Index ' là je ne sais plus de tête mais ça doit bien servir à quelque chose ItemTest = LV_Ref.SelectedItem ' le texte de mon sous-item LV_Ref.SelectedItem.ListSubItems.Item(1).Text = InputBox("Entrez un numéro de version pour " & LV_Ref.SelectedItem.Text, "FileVersion", LV_Ref.SelectedItem.ListSubItems.Item(1).Text) ' petit test pour vérifier que le texte de mon sous-item n'est pas vide If LV_Ref.SelectedItem.ListSubItems.Item(1).Text = "" Then Exit Sub Else ItemTest = LV_Ref.SelectedItem.ListSubItems.Item(1).Text End If End If ' Application.ScreenUpdating = True End Sub
Alors en fait, le message d'erreur provenait du fait que ma liste sur la feuille Excel n'était pas trié dans l'ordre alphabétique alors que j'avais spécifié à la ListView de le faire et de ce fait, l'index recherché (en réalité le 3) n'existait plus. Je ne sais franchement pas pourquoi mais c'est la solution.
Partager