VBA - formule

Résolu
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 juillet 2007 - 15 mai 2007 à 13:49
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 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.

Quelqu'un a la solution?? : )?

merci!
Cib

 

12 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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]

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mai 2007 à 14:08
Salut,
Quelle est l'erreur

@+: Ju£i?n
Pensez: Réponse acceptée
0
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 juillet 2007
15 mai 2007 à 14:17
erreur d'exécution '1004':
erreur définie par l'application ou par l'objet

Cib
 
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
15 mai 2007 à 14:23
Bonjour,
Va voir sur le poste que tu a mis dans commentCaMarche je t'ai donné une piste.
A+
louis
0

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

Posez votre question
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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.

@+: Ju£i?n
Pensez: Réponse acceptée
0
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 juillet 2007
15 mai 2007 à 14:53
merci bcp : ))!



...j'ai plusieurs formules de ce type à entrer.

a+
Cib
0
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 juillet 2007
15 mai 2007 à 14:53
merci bcp : ))!



...j'ai plusieurs formules de ce type à entrer.

a+
Cib
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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 ;

ex:
Worksheets("DIMENSIONS (F)").Range("B21").FormulaLocal = "=SI(IMPORT!A3="";"";IMPORT!A3)"

**** pas tout à fait sûr mais je pense que tu dois doubler les apostrophes internes, donc...

Worksheets("DIMENSIONS (F)").Range("B21"). FormulaLocal = "= SI(IMPORT!A3= """" ;"""";IMPORT!A3)"

ou pour une version "portable"
Worksheets("DIMENSIONS (F)").Range("B21").Formula = "= IF (IMPORT!A3 ="""","""",IMPORT!A3)"

MPi
0
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 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.

merci pour ces infos
: ))
Cib

 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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

MPi
0
colincib Messages postés 22 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 11 juillet 2007
16 mai 2007 à 11:42
bon à savoir! c'est plus simple en effet
merci
;-)
Cib
0
Rejoignez-nous