L'indice n'appartient pas à la sélection
Mariiine
-
Mariiine -
Mariiine -
Bonjour, l'erreur l'indice n'appartient à la sélection, apparaît. Et, il me souligne la ligne elems(i) = cells(i+2,2). Pouvez-vous m'aider pour corriger cela s'il vous plait ?
Global target As Double
Global nbr_elem As Integer
Global stat(30) As Integer
Global statb(30) As Integer
Global elems(30) As Double
Global best As Double
Sub store_sol()
Dim i As Integer
For i = 1 To nbr_elem
Cells(i + 2, 3) = statb(i)
Next i
End Sub
Sub copy_stat()
Dim i As Integer
For i = 1 To nbr_elem
statb(i) = stat(i)
Next i
End Sub
Sub eval(ByVal total As Double, ByVal pos As Integer)
If pos <= nbr_elem Then
stat(pos) = 0
eval total, pos + 1
stat(pos) = 1
eval total + elems(pos), pos + 1
Else
If (Abs(total - target) < Abs(target - best)) Then
best = total
copy_stat
End If
End If
End Sub
Sub find_sol()
'Originally written by Naishad Rajani. User-interface made
'pretty by Jimmy L. Day.
Dim StTime As Date, EndTime As Date
Dim i As Integer
StTime = Now
best = 0
target = Cells(1, 2)
nbr_elem = Cells(2, 2)
For i = 1 To nbr_elem
elems(i) = Cells(i + 2, 2)
Next i
eval 0, 1
store_sol
EndTime = Now
Debug.Print (EndTime - StTime) * 86400
End Sub
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- L'indice n'appartient pas à la sélection
- Indice téléphonique - Guide
- A qui appartient ce numéro - Guide
- L'indice n'appartient pas à la sélection access - Forum Access
- Google n'a pas pu vérifier que ce compte vous appartient. - Forum Gmail
- A qui appartient cette adresse ✓ - Forum Loisirs / Divertissements
1 réponse
Bonjour,
Vous pourriez mettre un fichier avec le code et les donnees qui provoquent l'erreur?????
Pour transmettre un fichier,
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Vous pourriez mettre un fichier avec le code et les donnees qui provoquent l'erreur?????
Pour transmettre un fichier,
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Ci-joint le lien
http://www.cjoint.com/c/ELwkTUJV82a
Fichier modifie pour l'erreur (dimensionnement des tableaux a faire en dynamique) et quelques astuces Excel , mais y a un bleme, la procedure Sub eval(ByVal total As Double, ByVal pos As Integer) ne se termine jamais ( ai ajoute un Doevents pour pourvoir stopper le code)
https://www.cjoint.com/c/ELwortbaDqf
Je ne suis pas informaticienne et débutante dans ce type de macro donc je ne comprends pas tout à ce que vous avez dit. De plus, j'ai essayé le nouveau fichier que vous m'avez envoyé et cela ne fonctionne plus du tout quand je souhaite rechercher un montant .
Cordialement
C'est en gros ce que je vous ai écrit, ça ne marche pas. Le problème vient de la procédure Sub eval