Excel Vba : si colonne H contient...

Résolu
aude -  
 Aude -
Coucou à tous !

Je cherche à faire une macro qui donne le résultat suivant:

En fonction du chiffre indiqué colonne H, indiquer le nom du partenaire colonne J

Si H contient "L6" ou "71" ou "83" alors indiquer Partenaire1 colonne J
Si H contient "72" ou "80" alors indiquer Partenaire2 colonne J
Si H contient "81" ou "JM" alors indiquer partenaire3 colonne J
Si H contient "82" alors indiquer Partenaire 4 colonne J
Si H contient "84" ou "85" alors indiquer Partenaire 5 colonne J
Si H contient "88" ou "91" ou "93" alors indiquer Partenaire 6 colonne J
Si H contient "L3" alors indiquer Partenaire 7 colonne J

(Je sais que ça pourrait se faire via une formule mais je voudrais enchainer d'autres macros pour une mise en page rapide du fichier)

5 réponses

  1. aude
     
    Merci beaucoup d'avance pour votre aide !!!

    Aude
    0
  2. aude
     
    Merci de ton aide Michel !
    Toutefois puis je te demander ce que je dois mettre devant ce que tu m'as écrit (sub ? ) sous quelle forme ?

    Par ailleurs, peut être l'ais je mal exprimé mais j'ai besoin que la macro que tu m'as écrite soit appliquée à tout le fichier qui ne soit pas vide colonne H (et à partir de la ligne 2)

    Car en fait je me demande à quoi sert cette partie: "lig = 2"

    MErci beaucoup
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    j'ai fait ce que j'ai pu avec ce que tu m'as donné car tu dis
    mais je voudrais enchainer d'autres macros pour une mise en page rapide du fichier
    donc je ne pouvais pas savoir si cette partie est dans une macro, si c'est une sous-macro dans ton enchainement, si tu voulais une fonction....

    Car en fait je me demande à quoi sert cette partie: "lig = 2"

    je t'ai marqué par exemple lig=2

    lig est le numéro de ligne sur le quel tu détermines le partenaire

    il peut venir d'une boucle ou être un paramètre de fonction personnalisé ou de macro paramétrée

    enfin
    Par ailleurs, peut être l'ais je mal exprimé mais j'ai besoin que la macro que tu m'as écrite soit appliquée à tout le fichier qui ne soit pas vide colonne H (et à partir de la ligne 2)

    tu ne l'as pas "mal exprimé" mais "pas exprimé"

    Voila

    0
  4. Aude
     
    Alors, désolée, je pensais avoir ^été complête:

    Donc ce serait une macro à part. Dans ce cadre, que dois je rajouter ?

    Et comme expliqué, j'aimerai que la macro soit appliquée à toute la colonne J, tant que H n'est pas vide (sauf ligne 1).

    Est ce plus clair ?

    MErci en tout cas !
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      as tu des vides dans ta colonne H ou se base t' on sur la dernière ligne remplie colonne H?
      tu as parlé de tout le fichier: toutes les feuilles du classeur sont concernées?
      0
    2. Aude
       
      Pas de vides colonnes H jusqu'en bas de la feuille.

      En revanche dans la colonne où on souhaite le résultat (J) il ya des cellules remplies et des cellules vides. Je souhaite, dans tous les cas, que toute info colonne J soit détruite et remplacé par le résultat de la macro.

      J'ai dit tout le fichier... je voulais dire toute la feuille, désolée (encore)!
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Sub determiner_partenaire()
      Dim derlig As Integer, lig As Integer
      
      Application.ScreenUpdating = False
      derlig = Columns("H").Find("*", , , , , xlPrevious).Row
      
      For lig = 2 To derlig
           Select Case Cells(lig, "H")
           Case Is = "L6", 76, 83
                Cells(lig, "J") = "partenaire 1"
           Case Is = 72, 80
          ' .....
           Case Else
           '......
      End Select
      
      Next
      End Sub
      

      select case à compléter et détermines ce que tu fait si aucune donnée (case else) de col H correspond à un partenaire
      0
    4. Aude
       
      Super, merci beaucoup !!

      Cependant, bizarrement, ça ne fonctionne pas sur toutes les lignes:

      http://www.mirorii.com/fichier/43/458219/Classeur3-xls

      On se rend compte qu'il reste des lignes vides en J qui ne le sont pas en H !!

      (il en manque près de 3000 !)

      Merci beaucoup de ton retour, Michel !
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      ton minorrii est une usine à gaz qui propose des trucs dont je n'ai pas besoin

      utilise https://www.cjoint.com/

      et laisse y la macro que tu as complété
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    par exemple
    lig = 2
    Select Case Cells(lig, "H")
         Case Is = "L6", 76, 83
              Cells(lig, "J") = "partenaire 1"
         Case is = 72, 80
        ' .....
         Case Else
         '......
    End Select
    -1