Colonne variable

Bonjour,

Je cherche a appliquer la formule suivante :
ActiveCell.Offset(0, 1).Range("A1").Value = "Analyse"
ActiveCell.Offset(1, 1).Range("A1").Value = _
IF(COUNTIF(RC[-16]:RC[-2],"*ORDER*"),"*ORDER*",IF(COUNTIF(RC[-15]:RC[-1],"*HH*"),"*HH*","RAS"))

le fichier contient un grand nombre de lignes, des colonnes sont ajoutées a fil des semaines,
et je voudrais inclure une variable pour le nombre de colonne a prendre en compte.
la formule est ensuite recopié jusqu’à la dernière ligne de la feuille.

Pouvez vous m'éclairer ?
merci

6 réponses

  1. Contributeur
    Bonjour

    le (les) test des If sont incomplèts
    IF(COUNTIF(RC[-16]:RC[-2],"*ORDER*") ....?;
    ....? = ou > ou < etc à quoi ?

     Michel
    1. Effectivement :

      ActiveCell.FormulaR1C1 = _
      "=IF(COUNTIF(RC[-15]:RC[-1],"*ORDER*"),"*ORDER*",IF(COUNTIF(RC[-15]:RC[-1],"*HH*"),"*HH*",""RAS""))"
      1. Contributeur
        Rien de changé malgré le "effectivement"....

        regarder dans l'aide en ligne la fonction Nb.SI

        bonne continuation
        abandon du suivi
    2. Oui je crois que tu peux aller consulter l'aide sur la fonction NB.SI
      1. je pensais utiliser le code

        Dim DerColonne As Integer
        DerColonne = Cells(1, Columns.Count).End(xlToLeft).Column
        Dim MaPlage As Range
        Dim i As Integer
        i = 1
        Set MaPlage = Range("B" & i & ":DerColonne" & i)

        mais j'ai un message d'erreur 1004; la méthode Range de l'objet Lobal a échoué,

        et je ne trouve pas l'erreur pouvez vous m'aider ?

        Merci
        1. Bonjour Franck, essaye avec :
          Set MaPlage = Range(Cells(i, 2), Cells(i,DerColonne))
          Cordialement.  :)
      2. Par Contre

        dans la formule la plage n'est pas retranscrite correctement, pour le "Maplage.Select" prouve bien que la plage est correcte,

        Dim DerColonne As Integer
        DerColonne = Cells(1, Columns.Count).End(xlToLeft).Column
        Dim MaPlage As Range
        Dim i As String
        i = 2
        Set MaPlage = Range(Cells(i, 1), Cells(i, DerColonne))
        MaPlage.Select

        Range("A1").End(xlToRight).Offset(0, 1).Range("A1").Value = "Analyse"
        Range("A1").End(xlToRight).Offset(1, 0).Range("A1").Value = _
        "=IF(COUNTIF(MaPlage,"*ORDER*"),"*ORDER*",IF(COUNTIF(Maplage,"*HH*"),"*HH*",""RAS""))"

        je ne trouve pas l'erreur, est ce que vous pouvez me dire ce qui ne va pas ?
        1. Pour tes types de données, ton DerColonne As Integer est bon ;
          mais pourquoi as-tu mis Dim i As String ? Tu avais mis avant
          Dim i as Integer qui était mieux ; mais pour un n° de ligne,
          c'est encore mieux de mettre Dim i As Long, pour éviter
          un plantage si i > 32 767 !