Copier une formule

Josée

XLDnaute Nouveau
Bonjour,

J'ai reçu d'un ami cette formule : Range("ad2:ad" & [A100000].End(xlUp).Row).FormulaR1C1 =

Je l'utilise avant une formule si je veux faire copier la formule jusqu’à la fin de la colonne. Elle fonctionne très bien sur mon poste de travail?! Si je change de poste de travail, ma macro bloque à [A100000]
Est-ce que quelqu'un pourrait m'indiquer à quoi cette référence fait allusion svp?


 

mutzik

XLDnaute Barbatruc
bjr,

et le meiux est d'utiliser, au lieu d'un chiffre rows.count qui sera remplacé par le nombre de lignes de la version d'excel utilisé.
Ceci fait que comme cela, ton code fonctionnera sur n'importe quelle version

soit :
[A100000] à remplacer par
range("A" & rows.count).end ...
 

Josée

XLDnaute Nouveau
bjr,

et le meiux est d'utiliser, au lieu d'un chiffre rows.count qui sera remplacé par le nombre de lignes de la version d'excel utilisé.
Ceci fait que comme cela, ton code fonctionnera sur n'importe quelle version

soit :
[A100000] à remplacer par
range("A" & rows.count).end ...
Allo Mutziq,
J'essaie mais je n'arrive pas à l'intégrer correctement. Peux-tu regarder le visu que j'ai joint à ma dernière réponse svp.
 

Josée

XLDnaute Nouveau
Bonjour et merci à ceux qui m'ont répondu,

J'ai réussi à faire fonctionner de cette façon (ligne 1) :
Range("c2:c" & Rows.Count).FormulaR1C1 = _
Range("C4").Select
Selection.FormulaArray = _
"=INDEX(PARAMÈTRES!R5C3:R21C3,SMALL(IF((--'Données dotation'!RC[-1]<=PARAMÈTRES!R5C5:R21C5)*(--'Données dotation'!RC[-1]>=PARAMÈTRES!R5C4:R21C4),ROW(PARAMÈTRES!R5C4:R21C4)-4),1))"
Range("C4").Select

Mais ça alourdi beaucoup l'application de mes macro commandes... J'aimerais que ma formule se copie uniquement aux lignes où il y a de la donnée. Ex. lors d'une extraction ça peut être 1800 lignes et une autre fois 2100. Existe-t-il un truc?
 

mutzik

XLDnaute Barbatruc
re, oui il faut d'abord calculer la dernière ligne utilisée, dans une autre colonne de ton tableau, style :
derlig = range("B" & rows.count).end(xlup).row te donnera la dernière ligne utilisée dans la colonne B
après, au lieu de Range("c2:c" & Rows.Count).FormulaR1C1 = _ ...
tu mets : Range("c2:c" & derlig).FormulaR1C1 = _ ...
ce qui mettra ta formule que sur les lignes réellement utilisées de ton tableau
bien entendu, c'est à toi de voir dans quelle colonne tu va chercher la 'derlig'
 

Josée

XLDnaute Nouveau
re, oui il faut d'abord calculer la dernière ligne utilisée, dans une autre colonne de ton tableau, style :
derlig = range("B" & rows.count).end(xlup).row te donnera la dernière ligne utilisée dans la colonne B
après, au lieu de Range("c2:c" & Rows.Count).FormulaR1C1 = _ ...
tu mets : Range("c2:c" & derlig).FormulaR1C1 = _ ...
ce qui mettra ta formule que sur les lignes réellement utilisées de ton tableau
bien entendu, c'est à toi de voir dans quelle colonne tu va chercher la 'derlig'
Ok, c'est une idée! Je vais l'essayer et je t'en reparle. Merci!!
 

Josée

XLDnaute Nouveau
re, oui il faut d'abord calculer la dernière ligne utilisée, dans une autre colonne de ton tableau, style :
derlig = range("B" & rows.count).end(xlup).row te donnera la dernière ligne utilisée dans la colonne B
après, au lieu de Range("c2:c" & Rows.Count).FormulaR1C1 = _ ...
tu mets : Range("c2:c" & derlig).FormulaR1C1 = _ ...
ce qui mettra ta formule que sur les lignes réellement utilisées de ton tableau
bien entendu, c'est à toi de voir dans quelle colonne tu va chercher la 'derlig'
Mutzik, je n'y arrive pas... Je ne comprends pas la partie "derlig"... je ne sais pas comment l'intégrer. Ma formule fait partie d'une macro commande. Peux-tu me donner un exemple svp? ;(
 

Discussions similaires

Statistiques des forums

Discussions
312 366
Messages
2 087 638
Membres
103 627
dernier inscrit
nabil