Bonjour voici une procédure me permettant de remplir les éléments d'une comboBox
mais celle ci est très lente
y a t'il moyen de l'optimiser?
note Statut.Value est <> de "Modification" dans mon cas de test (mais ca ne change rien sur les perf car c'est tout aussi long en "Modification")
Armes contient 300 lignes
CombattantsTemplateArmes contient 1000 lignes environ
CombattantsTemplateTypeArmes contient 90lignes environ
merci d'avance
mais celle ci est très lente
y a t'il moyen de l'optimiser?
VB:
Private Sub InitArmes()
j = Combattant.Value
EquipementAdd.Clear
For Each Row2 In Range("Armes").ListObject.ListRows
TypeEnCours = Row2.Range(1, Range("Armes").ListObject.ListColumns("Type").Index)
ArmeEnCours = Row2.Range(1, Range("Armes").ListObject.ListColumns("English").Index)
insertion = False
If Statut.Value = "Modification" Then
For Each Row3 In Range("CombattantsTemplateTypesArmes").ListObject.ListRows
If Row3.Range(1, Range("CombattantsTemplateTypesArmes").ListObject.ListColumns("Combattant").Index) = RangValue(j, 0) _
And Row3.Range(1, Range("CombattantsTemplateTypesArmes").ListObject.ListColumns("TypeArme").Index) = TypeEnCours Then
insertion = True
Exit For
End If
Next
For Each Row3 In Range("CombattantsTemplateArmes").ListObject.ListRows
If Row3.Range(1, Range("CombattantsTemplateArmes").ListObject.ListColumns("Combattant").Index) = RangValue(j, 0) _
And Row3.Range(1, Range("CombattantsTemplateArmes").ListObject.ListColumns("Arme").Index) = ArmeEnCours Then
insertion = True
Exit For
End If
Next
Else
For Each Row3 In Range("CombattantsTemplateArmes").ListObject.ListRows
If Row3.Range(1, Range("CombattantsTemplateArmes").ListObject.ListColumns("Combattant").Index) = RangValue(j, 0) _
And Row3.Range(1, Range("CombattantsTemplateArmes").ListObject.ListColumns("Arme").Index) = ArmeEnCours Then
insertion = True
Exit For
End If
Next
End If
If insertion = True Then
If Langue.Value = "English" Or Row2.Range(1, Range("Armes").ListObject.ListColumns("Français").Index) = Empty Then
EquipementAdd.AddItem Row2.Range(1, Range("Armes").ListObject.ListColumns("English").Index)
Else
EquipementAdd.AddItem Row2.Range(1, Range("Armes").ListObject.ListColumns("Français").Index)
End If
End If
Next
End Sub
Armes contient 300 lignes
CombattantsTemplateArmes contient 1000 lignes environ
CombattantsTemplateTypeArmes contient 90lignes environ
merci d'avance