|
Comparaison entre deux tables |
Iniciado por Jeremy, jan., 23 2020 9:41 AM - 7 respostas |
| |
| | | |
|
| |
Membro registado 12 mensagems Popularité : +1 (1 vote) |
|
Publicado em janeiro, 23 2020 - 9:41 AM |
Bonjour, je vous écris car j'ai 2 petits problèmes concernant mon code,
L'application permet de comparer deux "formules" et doit mettre en avant les différences. Le client sélectionne la première formule, ce qui remplit mon premier tableau via une requête, même chose pour la seconde formule. (Une formule peut avoir un nombre différent d'entrées) Le client clique alors sur comparer.
J'ai donc écris ceci :
nPosTrouvée est un entier j est un entier = 1
POUR TOUTE LIGNE j de Table_Rq_CompoFormuleB1
nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB1.Designation,Table_Rq_CompoFormuleB2.Designation[j]) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1.Designation[j]..Couleur=RougeClair FIN j++ FIN
Premiere erreur : le trace me renvoie systématiquement un -1 sur ma première ligne (meme si je compare deux formules similaires). Le débug me montre bel et bien deux désignation similaire avec un -1 sur mon TableCherche (???)
Seconde erreur : Si le tableau B1 a un nombre d'entrées supérieur au tableau B2, l'appli crash car elle ne trouve pas l'indice j (comment détourner cette erreur ?)
Merci de votre aide Mensagem modificada, janeiro, 23 2020 - 9:41 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 450 mensagems Popularité : +31 (43 votes) |
|
Publicado em janeiro, 23 2020 - 11:32 AM |
Bonjour
Et comme ca ?
nPosTrouvée est un entier
POUR TOUTE LIGNE de Table_Rq_CompoFormuleB1 nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1.Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1.Designation..Couleur = RougeClair FIN FIN
cdlt
DG |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems Popularité : +1 (1 vote) |
|
Publicado em janeiro, 23 2020 - 1:55 PM |
Re Bonjour, avec cette solution, je n'ai plus d'erreur sur l'indice j vu qu'il a disparu, par contre, j'aimerai que seulement les lignes qui sont différentes passent au rouge, actuellement, n'ayant pas d'indicateur de ligne, si nPosTrouvée renvoie -1, toutes les lignes passent au rouge.
Merci de ton aide |
| |
| |
| | | |
|
| | |
| |
Membro registado 450 mensagems Popularité : +31 (43 votes) |
|
Publicado em janeiro, 23 2020 - 2:17 PM |
et comme ça du coup ?
nPosTrouvée est un entier J est un entier
pour j = 1 _A_ Table_Rq_CompoFormuleB1..occurence
nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1[J].Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1[J].Designation..Couleur = RougeClair FIN FIN |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems Popularité : +1 (1 vote) |
|
Publicado em janeiro, 23 2020 - 2:23 PM |
Super, ça fonctionne du tonnerre.
Merci beaucoup de ton aide ! |
| |
| |
| | | |
|
| | |
| |
Membro registado 450 mensagems Popularité : +31 (43 votes) |
|
Publicado em janeiro, 23 2020 - 3:01 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems Popularité : +1 (1 vote) |
|
Publicado em janeiro, 23 2020 - 4:28 PM |
Re, c'est encore moi, j'ai donc utilisé ce qui a été définit précédemment, et j'ai essayer de faire la même chose dans l'autre sens, c'est a dire, maintenant que la table 1 scrute les donnée de la table 2 en colorant les différences, je tente de scruter la table 1 avec la deuxieme, J'ai malheureusement un retour étrange, en mode débug, je peux voir que les lignes de la table 1 se colores correctement, mais quand la fonction passe sur la table 2, toutes les couleurs de la 1 disparraissent. C'est a n'y rien comprendre
POUR K = 1 _A_ TableB1Size nPosTrouvée1 = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1[K].Designation) Trace(nPosTrouvée1) SI nPosTrouvée1 = -1 ALORS
Table_Rq_CompoFormuleB1[K].Designation..Couleur = RougeClair
SINON Table_Rq_CompoFormuleB1[K].Designation..Couleur = VertFoncé
FIN FIN
POUR J = 1 _A_ TableB2Size nPosTrouvée3 = TableCherche(Table_Rq_CompoFormuleB1.Designation,Table_Rq_CompoFormuleB2[J].Designation) Trace(nPosTrouvée3) SI nPosTrouvée3 = -1 ALORS Table_Rq_CompoFormuleB2[J].Designation..Couleur = RougeClair SINON Table_Rq_CompoFormuleB2[J].Designation..Couleur = VertFoncé FIN FIN
|
| |
| |
| | | |
|
| | |
| |
Membro registado 450 mensagems Popularité : +31 (43 votes) |
|
Publicado em janeiro, 23 2020 - 5:36 PM |
euh idem cela devrait fonctionner et si on reprend la première version du code légerement modifié comme ce qui suit ? sinon après je vois que le support technique car pour moi cela devrait déjà fonctionner comme vous l'avez ecrit
j'ai modifié cette ligne : Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation..Couleur = RougeClair voir aussi si besoin de modifié cette ligne :nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation)
nPosTrouvée est un entier
POUR TOUTE LIGNE de Table_Rq_CompoFormuleB1 nPosTrouvée = TableCherche(Table_Rq_CompoFormuleB2.Designation,Table_Rq_CompoFormuleB1.Designation) Trace(nPosTrouvée)
SI nPosTrouvée = -1 ALORS Table_Rq_CompoFormuleB1[Table_Rq_CompoFormuleB1].Designation..Couleur = RougeClair FIN FIN |
| |
| |
| | | |
|
| | | | |
| | |
|