mdeg
Messages postés28Date d'inscriptionmercredi 31 mars 2010StatutMembreDernière intervention29 avril 2010
-
6 avril 2010 à 13:36
mdeg
Messages postés28Date d'inscriptionmercredi 31 mars 2010StatutMembreDernière intervention29 avril 2010
-
6 avril 2010 à 14:16
Bonjour,
J'ai un soucis avec un code. Je souhaite remplir la diagonale d'un tableau avec des 1, et le reste mettre des 0.
Les dimensions du tableau que je souahite créé sont reprises depuis une liste box précédente qui est remplie via le code suivant :
Private Sub CommandButton_Ouvrir_Click()
Dim Fichier
Dim Tbld As Single
Fichier = Application.GetOpenFilename("Fichier Texte (*.txt), *.txt")
If Fichier = False Then Exit Sub
If Fichier Like "*" & ThisWorkbook.Name Then MsgBox "Ouverture non autorisée.": Exit Sub
On Error Resume Next
Open Fichier For Input As #1
On Error GoTo 0
Dim Ligne As String
Dim Valeur As Variant
Dim Separateur As String
Input #1, Ligne
Separateur = InputBox("Entrer le séparateur de données : " & Ligne, "Séparateur")
Valeur = Split(Ligne, Separateur)
ListBox_Points_Homologues.AddItem (Valeur(0))
ListBox_Points_Homologues.List(0, 1) = Valeur(1)
ListBox_Points_Homologues.List(0, 2) = Valeur(2)
ListBox_Points_Homologues.List(0, 3) = Valeur(3)
ListBox_Points_Homologues.List(0, 4) = Valeur(4)
While Not (EOF(1))
Input #1, Ligne
Valeur = Split(Ligne, Separateur)
ListBox_Points_Homologues.AddItem (Valeur(0))
ListBox_Points_Homologues.List(ListBox_Points_Homologues.ListCount - 1, 1) = Valeur(1)
ListBox_Points_Homologues.List(ListBox_Points_Homologues.ListCount - 1, 2) = Valeur(2)
ListBox_Points_Homologues.List(ListBox_Points_Homologues.ListCount - 1, 3) = Valeur(3)
ListBox_Points_Homologues.List(ListBox_Points_Homologues.ListCount - 1, 4) = Valeur(4)
Wend
Close #1
End Sub
Le code que j'ai écrit pour remplir ma matrice identité est le suivant :
Private Sub CmdB_calculer_parametres_compenses_Click()
Dim m As Long
Dim n As Long
Dim MatP() As Double
'Matrice des poids
Dim lTaille As Long
Let lTaille = UserForm_Accueil.ListBox_Points_Homologues.ListCount
Dim Dim_MatP As Long
Dim_MatP = lTaille * 2
ReDim MatP(Dim_MatP, Dim_MatP - 1)
For m = 0 To Dim_MatP
For n = 0 To Dim_MatP - 1
If m = n Then
MatP(m, n) = 1
Else
MatP(m, n) = 0
End If
Next n
Next m
'Définit le nombre de colonnes pour la ListBox.
ListBox1.ColumnCount = UBound(MatP)
'Chargement du tableau dans la ListBox
ListBox1.List() = MatP
End Sub
Le probléme est que dans la listbox ou j'affiche cette matrice, j'ai bien 8 colonnes, mais 9 lignes. La dernière ligne qui ne comporte que des 0 dans la listbox ne devrait pas exister. Je n'arrive pas à trouver l'erreur dans mon code.