une formule pour x cellules

T

toubib

Guest
bonjour à tous,

je cherche à savoir comment faire pour incrémenter une formule identique à plusieurs cellules sans refaire quinze mille fois le même code en changeant uniquement le range parce que ca prend beaucoup de place

ex: au lieu d'avoir:
Range('ce2').Select
ActiveCell.FormulaR1C1 = _
'=IF(RC[-78]/RC52=1,100,IF(RC52/RC[-78]<>0,(RC[-78]/RC52)*100,''''))'
Range('ce3').Select
ActiveCell.FormulaR1C1 = _
'=IF(RC[-78]/RC52=1,100,IF(RC52/RC[-78]<>0,(RC[-78]/RC52)*100,''''))'
Range('ce4').Select
ActiveCell.FormulaR1C1 = _
'=IF(RC[-78]/RC52=1,100,IF(RC52/RC[-78]<>0,(RC[-78]/RC52)*100,''''))'
jusqu'à ce20, la seule chose changeant étant juste le range.



j'aimerais pouvoir avoir une formule unique pour tous mes range concernées et j'avais pensé que cela marcherait:
Range('ce2:ce' & nb).Select
ActiveCell.FormulaR1C1 = _
'=IF(RC[-78]/RC52=1,100,IF(RC52/RC[-78]<>0,(RC[-78]/RC52)*100,''''))'

le problème étant que comme cela, ça ne marche pas alors qu'est ce qui ne va pas dans ce code? sachant que nb est déjà calculé

merci :)
 
T

toubib

Guest
bon ben je comprends pas finalement je viens de réessayer et ce coup la ca marche donc moralité j'ai une nouvelle question :)

comment peux t'on faire pour faire la même chose avec une recherchev() ou seules changent les range et les valeurs des colonnes
ex:
ActiveCell.FormulaR1C1 = _
'=VLOOKUP(''sheets1'',R6C1:R500C69,3,0)'
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
'=VLOOKUP(''sheets1'',R6C1:R500C69,4,0)'

jusqu'à 60

une formule du genre
range('a1:x1').select
selection.formulaR1C1='=vlookup(''sheets1'',r6c1:r500c69,1-24,0)'

vous pensez que c'est possible pour un lookup?
 

ljoue

XLDnaute Junior
Salut toubib,

Pourquoi ne tire tu pas simplement ta formule vers les bas...

En code ça donne :


Range('ce2').Select
ActiveCell.FormulaR1C1 = _
'=IF(RC[-78]/RC52=1,100,IF(RC52/RC[-78]<>0,(RC[-78]/RC52)*100,''''))'

Range('CE2').Select
Selection.AutoFill Destination:=Range('CE2:CE100'), Type:=xlFillDefault


Juste une précision si tu as des cellules qui sont des constantes il ne faut pas oublier de mettre des $ . qui se traduisent en VBA par des [] enfin je crois.


@+ Laurent
 
T

toubib

Guest
salut,

ben en fait tu ne peux pas les incrémenter comme ça parce que cela ne te modifie pas le n° de la colonne et c'est ça qui m'intéresse!

et pour les $ en fait il ne faut justement pas de [], c'est plutôt $a$1=R1C1, quand tu as des [] c'est pour que tes cellules changent en fonction de la cellule où tu as ta formule genre R[2]C[2] donne e4 si tu la cellule ou tu es est b2 ou g6 si tu es en e4



merci qd même
 

Discussions similaires

Réponses
7
Affichages
356
Réponses
1
Affichages
1 K
Réponses
13
Affichages
2 K

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon