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
A voir également:

6 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

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


 Michel
0
Franck
 
Effectivement :

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

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


bonne continuation
abandon du suivi
0
Franck
 
Oui je crois que tu peux aller consulter l'aide sur la fonction NB.SI
0
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
Utilisateur anonyme
 
Bonjour Franck, essaye avec :
Set MaPlage = Range(Cells(i, 2), Cells(i,DerColonne))
Cordialement.  :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Franck
 
Bonjour,

C'est juste parfait,

Merci !
0
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
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