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. 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 !
  2. 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.  :)
  3. Oui je crois que tu peux aller consulter l'aide sur la fonction NB.SI
    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. Contributeur
      Bonjour

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

       Michel