Condition If pas toujours respecté
Bonjour a tous et a toute,
J'ai un bout de code sur lequel je bloque complètement.
Simple, il s'agit de 2 "If", mais les deux ne marche pas correctement et ça m'affiche des résultat sans aucune logique (Parfois la condition est fausse et passe en vrai, et vice versa)
Etant donné le manque de logique dans les résultats, je n'arrive pas a trouver d'ou vien le PB....
Si vous avez une idée je suis preneur ! Merci
Je vous met le excel en PJ, vous avez les résultat apparent sur l'onglet, et le code est celui de la macro "SolutionTest"
Bonjour Evan38
Il faudrait déjà commencer par nous dire ce qui cloche, tu connais ton métier, pas nous
Après les 2 IF sont non ne peut plus basic
If Workbooks(Classeur_CAPFT).Sheets(Numero_Onglet).Cells(i, 2).Value = "EDF" Then GoTo Suivant
If Workbooks(Classeur_CAPFT).Sheets(Numero_Onglet).Cells(i, 2).Value = "" Then GoTo Suivant
A moins que tu ne parles de ces 2 là
If Application.CountIf(Liste_Appui, X) > 0 Then
If Workbooks(Nom_Classeur_Macro).Sheets("FT").Cells(Incrementation_Ligne, 2).Value = "MI6" Then
@+
Effectivement, je parle bien des deux IF du dessous
je vais expliquer plus en détail, voici ce que je veut faire avec mon code :
Si la case (B2) a un des trigrammes (ex : MI6) qui est dans la liste (V1 a V93) Alors
Si ce trigramme est "MI6"
mettre "MI6" en H2
Sinon
mettre "Ce Type d'appui n'a pas encore été intégré au programme." en H2
Fin Si
Sinon
mettre "Implantation AEOP" en H2
Seulement, quand je le lance, il y a certain appui qui sont dans la liste, mais ca me met "Implantation AEOP" en H2
De plus, certain de ces appuis sont des MI6, or il devrait valider les condition, MI6 est dans la liste, et MI6 = MI6
J'ai d'abord penser au nb max d'argument dans une liste, car les appuis ou je voit le disfonctionnement se situe plus bas (peut etre simplement un hasard), j'ai alors essayer de supprimer 197 de V1, tout les 197 sont alors passer correctement de "Ce Type d'appui n'a pas encore été intégré au programme." à "Implantation AEOP".
Seulement lorsque je met MI6 dans V1, rien ne se passe, les MI6 reste en "Implantation AEOP" (Je prend MI6 comme exemple mais c'est valable pour MT7 aussi par exemple)
Alors je me suis dit que c'est peut être due au mélange entre lettre et chiffre "MI6" lorsque la fonction recherche la valeur dans la liste, idée vite balayer car des appui comme BM7 ne pose aucun soucis.
Suite a toutes ces résultat incohérent, je n'arrive pas a trouver d'où vient le problème...
J'espère m'être mieux expliqué
Re,
Problème d'espace dans le type, B2 = "MI6 " au lieu de "MI6"
Pour le gérer, voici le changement à faire
X = Trim(Workbooks(Nom_Classeur_Macro).Sheets("FT").Cells(Incrementation_Ligne, 2).Value)
@+
C'était donc si simple.. (Même avec ça je comprend toujours pas que certains passaient et d'autre non.. oO')
Mais bon problème Résolu, Merci beaucoup @BrunoM45 !
Evan38,
Quand même
Dans ton code tu as :
If Application.CountIf(Liste_Appui, X) > 0 Then
Donc si tu as une valeur comme en B39 : "MI7 ", dans ta liste d'appui, tu as la valeur "MI7"
"MI7 " n'est pas contenu dans "MI7", résultat = 0, on passe l'opération
Est-ce plus compréhensible...
@+
Effectivement, j'était juste persuader de ne pas avoir d'espace parasite sur toute mes valeurs ^^'