Colonne variable

Franck -  
 Utilisateur anonyme -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

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

     Michel
    0
  2. Franck
     
    Effectivement :

    ActiveCell.FormulaR1C1 = _
    "=IF(COUNTIF(RC[-15]:RC[-1],"*ORDER*"),"*ORDER*",IF(COUNTIF(RC[-15]:RC[-1],"*HH*"),"*HH*",""RAS""))"
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Rien de changé malgré le "effectivement"....

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


      bonne continuation
      abandon du suivi
      0
  3. Franck
     
    Oui je crois que tu peux aller consulter l'aide sur la fonction NB.SI
    0
  4. Franck
     
    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
    0
    1. Utilisateur anonyme
       
      Bonjour Franck, essaye avec :
      Set MaPlage = Range(Cells(i, 2), Cells(i,DerColonne))
      Cordialement.  :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Franck
     
    Bonjour,

    C'est juste parfait,

    Merci !
    0
  7. Franck
     
    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 ?
    0
    1. Utilisateur anonyme
       
      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 !
      0