Erreur d'execution 6 depassement de capacite
a
bonjour tt le monde , j ai petit souci avec ce message qui s'affiche des que je lance l execution erreur d'execution 6 depassement de capacite :
Private Sub UserForm_Initialize()
With ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.add , , "b", 0
.ColumnHeaders.add , , "N° de bureau", 100, lvwColumnCenter
.ColumnHeaders.add , , "Nom", 100, lvwColumnCenter
.ColumnHeaders.add , , "Prenom", 100, lvwColumnCenter
.ColumnHeaders.add , , "Adresse IP", 100, lvwColumnCenter
.ColumnHeaders.add , , "Poste", 100, lvwColumnCenter
End With
Dim a As ListItem
Dim b As Integer
Dim c As Integer
Me.ListView1.ListItems.Clear
b = Feuil1.Range("a" & Rows.Count).End(xlUp).Row
For c = 4 To b
Set a = Me.ListView1.ListItems.add(, , Feuil1.Cells(c, "a"))
a.SubItems(1) = Feuil1.Cells(c, "a")
a.SubItems(2) = Feuil1.Cells(c, "b")
a.SubItems(3) = Feuil1.Cells(c, "c")
a.SubItems(4) = Feuil1.Cells(c, "d")
a.SubItems(5) = Feuil1.Cells(c, "e")
Next c
End Submerci d'avance pour votre aide .
T
Bonjour,
Tu as défini 6 colonnes dans ListView1, mais l’indexation des SubItems commence à 1 en VBA.
Voici le code corrigé, prenant en compte les problèmes ci-dessous :
1. Ajout d'une colonne supplémentaire pour éviter les erreurs d'index sur les SubItems.
2. Validation des valeurs dans les cellules pour éviter des erreurs de type.
Private Sub UserForm_Initialize()
' Configuration de la ListView
With ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
' Ajout des en-têtes de colonnes
.ColumnHeaders.Add , , "b", 0
.ColumnHeaders.Add , , "N° de bureau", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Nom", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Prenom", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Adresse IP", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Poste", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Extra", 100, lvwColumnCenter ' Colonne supplémentaire pour éviter erreur SubItems(5)
End With
' Déclaration des variables
Dim a As ListItem
Dim b As Integer
Dim c As Integer
' Effacer les éléments existants
Me.ListView1.ListItems.Clear
' Trouver la dernière ligne utilisée dans la colonne A
b = Feuil1.Range("a" & Rows.Count).End(xlUp).Row
' Boucle pour ajouter les données à la ListView
For c = 4 To b
' Ajouter un nouvel élément
Set a = Me.ListView1.ListItems.Add(, , Feuil1.Cells(c, "a").Value)
' Remplir les SubItems avec les données des cellules
a.SubItems(1) = Feuil1.Cells(c, "b").Value
a.SubItems(2) = Feuil1.Cells(c, "c").Value
a.SubItems(3) = Feuil1.Cells(c, "d").Value
a.SubItems(4) = Feuil1.Cells(c, "e").Value
a.SubItems(5) = Feuil1.Cells(c, "f").Value ' Assurez-vous que les colonnes existent et sont bien mappées
Next c
End Suba
merci bcp tr nizar
a
je vous remercie pour votre aide la solution etait : il falait declarer le B et C comme long pas integer .