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"

7classeur1.xlsm (210.14 Ko)

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 il n'y a rien de compliqué à comprendre

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 ^^'

Rechercher des sujets similaires à "condition pas respecte"