VBA IF la cellule contient "un mot"

Re,

Tu peux utiliser le site:

https://www.cjoint.com/

  • Tu mets ton fichier/photo dans le cadre du haut
  • Tu choisis diffusion privée
  • Tu choisis la durée de conservation sur le site (il sera supprimé par la suite; sauf en illimité)
  • Tu renseigne ton e-mail (si tu veux le supprimer toi-même)
  • Tu cliques sur créer le lien CiJoint

Un lien sera alors généré et tu pourras le poster dans ton message.

Cordialement,

Ci joint les liens

Cordialement

Re,

Merci pour les liens,

Je ne comprends pas ce qui cloche, hormis quelques petites erreurs:

  • La boucle démarre à la ligne 4 et non 2
  • Un point manquant sur un range
  • Une erreur sur la désignation d'une colonne

Petite faute d'orthographe au passage : 2 "r" à incorrect,

Essaie cette correction:

correction

Cordialement,

Re,

Une variante à tester...

Option Compare Text
Sub Bouton1_Cliquer()
  Dim i As Long, derlig As Long
   With Sheets("CONFIRM CLIENT")
       dl = .Range("E" & Rows.Count).End(xlUp).Row   'dernière  cellule utilisée de la colonne E
        For i = 4 To dl   'boucle de la ligne 4 à la dernière
         If .Range("G" & i).Value <> "Reçus" Then
            .Range("I" & i) = "InCorrect"
         Else
          If .Range("H" & i).Value = "VALIDE" Or .Range("E" & i).Value = "REJETE" Or .Range("E" & i).Value = "PARTIELLEMENT REJETEE" Then
            .Range("I" & i) = "Correct"
          Else
            .Range("I" & i) = "InCorrect"
          End If
         End If
        Next i
   End With
End Sub

@+

Ça me fait toujours incorrect .

Peut-être c’est du que sur la colonne G et H sont des formule avec si ?

C'est peut être dut au colonne G et H qui sont des formule ?

Re,

J'ai fait l'essai avec formules, pas de souci avec le fichier test....je ne vois pas ce qui cloche....

Essaie ce fichier et dis-moi...

  • Si tu inscris un "x" en colonne H : tu affiches "Reçus" en colonne D
  • Si tu inscris un "1" en colonne I: tu affiche "valide" en colonne E
  • Si tu inscris un "2" en colonne I: tu affiche "rejetee" en colonne E
  • Si tu inscris un "3" en colonne I: tu affiche "partiellement rejetee" en colonne E
  • Si tu n'inscris un rien où autre chose en colonne I: tu affiche "blabla" en colonne E

Tu cliques ensuite sur le bouton, et vois si le résultat est celui souhaité.....

Tu as peut-être un espace en trop dans tes colonnes qui fait que le mot ne correspond plus aux critères?

@+

Bonjour ,

Peut être ça fonctionne pas car j’ai une deuxième feuille sur le classeur

Bonjour luc789,

J'ai fait mon possible avec mes connaissances et les infos que tu m'a données, mais là, sans ton fichier, je ne peux rien faire de plus,

Si tu peux le joindre (sans données confidentielles), je verrai ce que je peux faire dans la limite de mes possibilités.

A bientôt,

Malheureusement c’est sur un ordi de travaille impossible de vous le joindre , dans la colonne H

C’est une formule recherche V dans le classeur 2

Peut etre c’est dut a sa

Re,

La colonne H est le résultat d'une rechercheV sur la feuille 2, c'est bien ça ?

Quelle est la formule ?

Photo de la feuille 2 ?

Cordialement,

Bonjour ,

Voici le lien

Cordialement

Re,

Merci pour la photo.

  • J'ai reproduit une feuille 2 (MINOS ET SEPA)
  • J'alimente mes colonnes G (fichiers reçus) et H (statut) par une RechercheV sur la feuille 2
  • J'applique ma macro, chez moi ça fonctionne, (j'ai mis une MFC couleur verte sur la colonne I pour vérifier)
1 2

J'applique ce code:

 Option Compare Text

Sub Bouton1_Cliquer()
  Dim i As Long, derlig As Long

  Application.ScreenUpdating = False

  With Sheets("CONFIRM CLIENT")
   dl = .Range("B" & Rows.Count).End(xlUp).Row   'dernière  cellule utilisée de la colonne B
    For i = 4 To dl   'boucle de la ligne 2 à la dernière
     If Range("G" & i).Value = "Reçus" Then
      Select Case .Range("H" & i).Value
       Case "VALIDE", "REJETEE", "PARTIELLEMENT REJETEE" 'tes conditions pour la colonne E
        .Range("I" & i) = "Correct"
       Case Else
        .Range("I" & i) = "InCorrect"
      End Select
     Else
        .Range("I" & i) = "InCorrect"
     End If
    Next i
  End With
End Sub

Le fichier test:

2luc789.xlsm (43.69 Ko)

Comme je te l'ai dit, sans ton fichier, je ne peux rien de plus,

Remarques:

Pour rappel, pour afficher correct, il faut Reçus en colonne G (si Introuvable où autre: on affiche Incorrect) et soit VALIDE, soit REJETEE, soit PARTIELLEMENT REJETEE en colonne H(si autre: on affiche Incorrect même si Reçus en G); conditions que tu avais définies.

Dans ta photo, les colonnes affichent des #N/A ??!

Pour ne plus les afficher :

=SIERREUR(Ta formule;"")

=SIERREUR(RECHERCHEV(B4;'MINOS ET SEPA'!$A$2:$I$1175;9;FAUX);"")

Cordialement,

Bonjour ,

J’ai regardé un peu et je pense avoir trouvé ce qui ne va pas .

Ça vient de mon deuxième tableau où sur la recherche V recherche une valeur qui est fausse .

Sur la VBA il n’arrive pas à trouver validee ect ..

Merci , cordialement ,

Re,

Heu....c'est normal qu'il ne trouve pas VALIDEE puisqu'on lui dit de chercher VALIDE,

capture
 Case "VALIDE", "REJETEE", "PARTIELLEMENT REJETEE" 'tes conditions pour la colonne E

Il te faut donc

 Case "VALIDEE", "REJETEE", "PARTIELLEMENT REJETEE" 'tes conditions pour la colonne E

Cordialement,

J’ai bien mis validee sur mes formule , je pense que c’est une histoire peut etre d’espace ou je ne sais pas

Re,

J’ai bien mis validee sur mes formule , je pense que c’est une histoire peut etre d’espace ou je ne sais pas

Espace, Accent, Majuscule....??

Si tu écris VALIDEE manuellement, ça fonctionne ?

Cordialement,

Oui j’ai essayer et ça fonctionne bien

Je pense que c’est dût à l’extraction du 2 ème classeur

Rechercher des sujets similaires à "vba contient mot"