Code pr éviter répétitions incompréhensibles

Résolu
vérokit -  
vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !
Je dois déboguer un programme réalisé avec Visual Studio 2005 en langage VB.net. Ce programme sert à réaliser des certificats d'étalonnage d'appareils et une partie du code sert à contrôler dans un tableau excel où est rentrée la liste des certificats avec leurs noms et numéros, qu'il n'existe pas deux numéros de certificats identiques. Le code est la suivant :

compteur=0
For i=4 To 14 'lignes dans lesquelles sont inscrites les numéros de certificats
mmx(compteur)=feuilexcel99.Worksheets("feuil1").range("D"&i).Value
compteur=compteur+1
Next i

compteur=11
For i=46 To 49 'lignes dans lesquelles sont inscrites les numéros de certificats
mmx(compteur)=feuilexcel99.Worksheets("feuil1").range("D"&i).Value
compteur=compteur+1
Next i

compteur=15
For i=62 To 65 'lignes dans lesquelles sont inscrites les numéros de certificats
mmx(compteur)=feuilexcel99.Worksheets("feuil1").range("D"&i).Value
compteur=compteur+1
Next i

compteur=19
For i=69 To 72 'lignes dans lesquelles sont inscrites les numéros de certificats
mmx(compteur)=feuilexcel99.Worksheets("feuil1").range("D"&i).Value
compteur=compteur+1
Next i

compteur=23
For i=79 To 79 'lignes dans lesquelles sont inscrites les numéros de certificats
mmx(compteur)=feuilexcel99.Worksheets("feuil1").range("D"&i).Value
compteur=compteur+1
Next i

mmx(27)=feuilexcel99.Worksheets("feuil1").range("D"&82).Value

Incert=False
For ft=1 To 25
For fp=ft+1 To 26
If mmx(ft)=mmx(fp) Then Incert=True
Next fp
Next ft

If incert=True Then
MsgBox ("Attention, il existe deux numéros de certificats identiques!"), MsgBoxstyle.Critical,"Pascal")
Show()
End if

Voilà, la difficulté que j'ai c'est que ce programme ce n'est pas moi qui l'ai écrit et je ne comprends pas du tout la logique du code, est-ce que quelqu'un le comprends ?
Merci de me donner un coup de pouce...

Véro
A voir également:

17 réponses

vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   9
 
C'est le détail qui me manquait, maintenant j'ai tout compris...
Re-merci beaucoup
1
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
bonjour que represente mmx?
0
vérokit
 
Bonjour
(merci de me répondre)
Quand je parcours le programme, je le retrouve dans le module déclaration de variables :
Public mmx(500) As Object
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
bon alors je n'ai pas vraiment compris le code non plus mais je pense que l'erreur viens de cette parti

MsgBox ("Attention, il existe deux numéros de certificats identiques!"), MsgBoxstyle.Critical,"Pascal")
il y a qu'une seul parenthese ouverte et deux de fermer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vérokit
 
OUPS !!!
C'est moi la coupable, dans le code il y a seulement deux parenthèses donc aucun problème de ce côté là !
Je pense que le plus """simple""" va être de refaire un code de recherche des doublons, tu as une idée ??
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
et entre les ligne 14 à 46, 49 à 62, 65 à 69, et 72 à 79 il n'y a rien???
0
vérokit
 
Non, mais là aussi je ne sais pas pourquoi...
Peut-être serait-il d'ailleurs plus simple de considérer un seul tableau de la ligne 4 à 79, en espérant kil bugg pas sur les cellules vides !
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
tu peut pas faire un seul tableau car il va te trouver des doublons sur les cellule vide
moi j'utilise visual studio 2005 pour le C# alors en vb je ne pense pas pouvoir d'aider pour faire un autre code désolé
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
mmx existe de 1 à 23, et 27, mmx(24), 25, et 26 son vide, l'objet n'a pas été créer donc il n'existe pas, or dans cette parti
Incert=False
For ft=1 To 25
For fp=ft+1 To 26
If mmx(ft)=mmx(fp) Then Incert=True
Next fp
Next ft
tout les objet mmx son analysé sauf le 27, et le probleme c'est que cette parti demande d'analysé des objet inexistant comme mmx(24), 25, et 26
0
vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   9
 
D'accord,
Comme je débute en programmation, je suis incapable de résoudre les erreurs, car je ne comprends ce qu'est mmx, ce que représente "compter", "ft", "fp" et comme la personne qui la écrit n'a fait aucun commentaire c'est pas évident.
Mais merci quand même d'avoir essayé
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
mmx c'est un objet imgine un cercle avec a l'interieur les donnees quand lui donne de la feuille excel, il en existe plusieus mmx1, mmx2, mm3...., compter une simple variable a qui on attribut une valeur, qu'on aurait pu appellé n'importe coment d'ailleur, ainsi que ft et fp.
il faut que tu créer un mmx24, 25 et 26, ou alors que tu modifie la boucle pour de la sorte:
Incert=False
For ft=1 To 23
For fp=ft+1 To 23
If mmx(ft)=mmx(fp) Then Incert=True
Next fp
Next ft
sa ne sert a rien de faire tourner la boucle jusqu'a 26 car c sa l'erreur
0
vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   9
 
Ok, et dans ce cas, je renomme la ligne mmx(27) en mmx(24) avec ft=1 To 23 et fp=ft+1 To 24 ??
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
oui fais comme sa
0
vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   9
 
Impeccable !
Je ne te remercierais jamais assez de m'avoir aidé !! Car j'aurais bien été incapable de réaliser un code moi-même !
Merci encore
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
merci a toi j suis étudiante et j'aime bien aidé car sa me fais progressé dans la programmation au moins
bonne journée
0
vérokit Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   9
 
En fait, j'ai une dernière interrogation : les variables ft et fp étant défini avec fp=ft+1, le programme ne contrôle que deux cellules consécutives entre elles ?
0
laetitia02 Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   129
 
il contole toute t cellule entre elle car il controle d'abord mmx 1 avec tout les autre mmx puis mmx 2 avec toute les autre, c pour sa qu'il y a deux boucle for, pour toute les controlé
0