colincib
Messages postés22Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention11 juillet 2007
-
15 mai 2007 à 13:49
colincib
Messages postés22Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention11 juillet 2007
-
16 mai 2007 à 11:42
Hi
j'ai besoin d'écrire dans une cellule une formule via une macro.
J'essaie :
Worksheets("DIMENSIONS (F)").Range("B21").Formula = "=SI(IMPORT!A3="";"";IMPORT!A3)"
mais j'ai une erreur.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 mai 2007 à 14:26
Re,
Oui j'ai pareil.
Essaie de voir ceci si ca te convient.
ActiveWorkbook.Worksheets("DIMENSIONS (F)").Range("B21").Select
ActiveCell.FormulaR1C1 = "=IF(IMPORT!R[-18]C[-1]="""","""",IMPORT!R[-18]C[-1])"
, ----
[code.aspx?ID=41455 By Renfield]
colincib
Messages postés22Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention11 juillet 2007 15 mai 2007 à 14:31
merci ça marche!
par contre si en plus tu peux m'éclairer sur le contenu, ce serait parfait
(suis amateur, mais désespère pas de progresser!!)
merci
a+
Cib
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 mai 2007 à 14:41
Salut,
En fait cela passe par l'addresse par rapport à B21
- R[-18] signifie 18 ligne plus haut (21 - 18 = 3)
- C[-1] signifie 1 colonne a gauche (B -1 = A)
ensuite il faut doubler les "" car c'est ainsi qu'il faut faire si tu veux les inclure dans une chainede caractère.
voila j'espére que cela t'éclaire plus.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 15 mai 2007 à 23:56
Dans ton code, tu aurais pu utiliser FormulaLocal plutôt que Formula
Pour expliquer un peu... Si tu as une formule à écrire sans utilisation de variable, tu fais un copier/coller de ta formule dans Excel et tu la mets telle quelle en utilisant FormulaLocal. Cette formule sera reconnue d'Excel français seulement.
Si tu veux que cette formule soit reconnue de toutes les versions d'Excel, tu dois utiliser Formula, mais tu dois aussi mettre les mots anglais des fonctions et utiliser le séparateur , au lieu de ;
colincib
Messages postés22Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention11 juillet 2007 16 mai 2007 à 09:57
effectivement ça m'a l'air plus simple que de calculer par rapport à la cellule concernée.
C'est bien juste une formule à afficher, après je fait appel à la fonction AutoFil pour le reste de mon tableau.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 16 mai 2007 à 11:35
Autofil n'est pas nécessaire si tu connais d'avance les cellules qui contiendront ta formule
ex:
Range("D1").Formula = "=SUM(A1:C1)" inscrit la formule en D1
Range("D1:D1000").Formula = "=SUM(A1:C1)" inscrit la formule sur 1000 lignes
Et cette formule sera incrémentée automatiquement