Macro : Vba : insérer un message texte si 2 cellules identiques

glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour !
Je commence en Vba et galère un peu avec une formule qui pourtant, ne doit pas être compliquée.

J'ai deux feuilles dans un classeur. Feuil1 et Feuil2
Dans la feuille 1 j'ai une colonne référence en C
Dans la feuille 2, j'ai une colonne référence en B et une colonne quantité en E.

Je dois remplir la colonne F de la Feuil1 avec une message du genre "Attention" si il y a une quantité inhérente dans la Feuil2 colonne E si les références de la feuille 1 et 2 sont égales.

Je n'arrive pas à trouver le code qui puisse m'effectuer une sorte de RechercheV finalement...

J'espère que j'arrive à me faire comprendre.

Je vous remercie !

3 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pour appliquer une fonction Excel en VBA il faut passer par Application.WorksheetFunction suivi du nom de la fonction en anglais et des arguments entre parenthèses
    exemple :
    ch=Application.WorksheetFunction.VLookup(sheets("Feuil1").Range("C3"),Sheets("Feuil2").Range("B2:E100"),4,0)
    correspond à la formule que tu mettrais dans une cellule:
    =RECHERCHEV(Feuil1!C3;Feuil2!B2:E100,4,0)

    Cdlmnt
    0
    1. glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Via55 et merci de ta réponse.
      Pour globaliser à l'ensemble de de la colonne C (de C2 à Cx) comment procède t'on ? Le 4 ici correspond à la colonne E ? (donc 5?) ou alors je me trompe peut être.
      Je te remercie !
      0
      1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
         
        Re,

        D'abord considère la remarque de Gyrus, que je salue au passage, pas forcément besoin de VBA, cela peut être géré par formules
        Néanmoins si tu veux en VBA :
        Pour globaliser à l'ensemble il te faut faire une boucle For Next de 2 à x
        Le 4 correspond à la 4eme colonne de la plage B2:E100 soit bien la E
        Cela pourrait donner quelque chose comme ceci (à adapter concernant les n°s de dernière ligne de chaque plage
        Sub comparaison()
        For n = 2 To 200 'boucle sur les lignes 2 à 200 en 1 A adapter
        On Error GoTo erreur
        ch = Application.WorksheetFunction.VLookup(Sheets("Feuil1").Range("C" & n), Sheets("Feuil2").Range("B2:E100"), 4, 0) 'plage à adapter
        If ch <> "" Then Sheets("Feuil1").Range("F" & n) = "Attention"
        erreur:
        Next n
        End sub
        


        Cdlmnt
        0
    2. glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
       
      Je te remercie via55 !
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Tu n'as peut-être pas besoin d'utiliser VBA pour cela.
    En F2, tu places la formule :
    =SI(NB.SI.ENS(Feuil2!$B$2:$B$1000;C2;Feuil2!$C$2:$C$1000;"<>")>0;"ATTENTION";"")

    et tu tires cette formule vers le bas.

    A+
    0
    1. glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Gyrus !
      Ca semble marcher, je vais vérifier tout ça.
      Ca m'enlève une sacrée épine du pied !

      Bonne journée :)
      0
  3. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    C'est quoi, une "quantité inhérente" ?

    A+
    0
    1. glnmchl Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Zoul67
      une quantité qui est liée à la cellule
      0