Colonne variable

Fermé
Franck - 22 déc. 2016 à 09:21
 Utilisateur anonyme - 22 déc. 2016 à 16:14
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié par michel_m le 22/12/2016 à 10:58
Bonjour

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


 Michel
0
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
22 déc. 2016 à 11:19
Rien de changé malgré le "effectivement"....

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


bonne continuation
abandon du suivi
0
Oui je crois que tu peux aller consulter l'aide sur la fonction NB.SI
0
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
22 déc. 2016 à 14:40
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
Bonjour,

C'est juste parfait,

Merci !
0
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
22 déc. 2016 à 16:14
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