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

Résolu/Fermé
vérokit - 25 janv. 2008 à 08:23
vérokit Messages postés 68 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 - 25 janv. 2008 à 10:34
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 vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 9
25 janv. 2008 à 10:34
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 08:29
bonjour que represente mmx?
0
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 09:12
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
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 09:16
et entre les ligne 14 à 46, 49 à 62, 65 à 69, et 72 à 79 il n'y a rien???
0
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 09:32
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 09:36
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 vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 9
25 janv. 2008 à 09:47
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 09:52
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 vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 9
25 janv. 2008 à 10:07
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 10:08
oui fais comme sa
0
vérokit Messages postés 68 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 9
25 janv. 2008 à 10:10
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 10:12
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 vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 septembre 2008 9
25 janv. 2008 à 10:27
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 jeudi 24 janvier 2008 Statut Membre Dernière intervention 12 mars 2009 129
25 janv. 2008 à 10:31
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