VBA ecrire une formule dans une cellule
Fermé
cib
Messages postés
17
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
11 juillet 2007
-
15 mai 2007 à 13:56
CoinCoin - 31 mai 2012 à 13:48
CoinCoin - 31 mai 2012 à 13:48
A voir également:
- VBA ecrire une formule dans une cellule
- Formule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller une cellule excel dans une formule - Guide
- Formule si et - Guide
3 réponses
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
15 mai 2007 à 14:06
15 mai 2007 à 14:06
Salut,
alors deux choses:
- la première, il me semble que tu devrais mettre FormulaR1C1 dans ta première syntaxe...
- la deuxième, je crois que tu te complique un peu la vie, parce qu'un si qui te renvoie "" si la cellule IMPORT!A3 est égale à "" et qui te revoie IMPORT!A3 sinon, autant mettre Worksheets("DIMENSIONS (F)").Range("B21").FormulaR1C1= "=IMPORT!A3"
;-)
alors deux choses:
- la première, il me semble que tu devrais mettre FormulaR1C1 dans ta première syntaxe...
- la deuxième, je crois que tu te complique un peu la vie, parce qu'un si qui te renvoie "" si la cellule IMPORT!A3 est égale à "" et qui te revoie IMPORT!A3 sinon, autant mettre Worksheets("DIMENSIONS (F)").Range("B21").FormulaR1C1= "=IMPORT!A3"
;-)
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 mai 2007 à 14:08
15 mai 2007 à 14:08
bonjour,
c'est quoi DIMENTION(F) c'est quoi le (F) comme tu l'écrit c'est l'indice d'un groupe, mais le feuille ne peuvent être groupée par leurs nom.
Donne plus d'explication parce que comme celà je comprend pas bien et a mon avis l'erreur est là.
Si tu a plusieur feuille avec les noms par ex DIMENTION 1 : DIMENTION 2 etc.. Tu doit mettre le nom de la feuille de la même façon, si tu veux travaillé par incrémentation il faut employer sheets(x)
A+
louis
c'est quoi DIMENTION(F) c'est quoi le (F) comme tu l'écrit c'est l'indice d'un groupe, mais le feuille ne peuvent être groupée par leurs nom.
Donne plus d'explication parce que comme celà je comprend pas bien et a mon avis l'erreur est là.
Si tu a plusieur feuille avec les noms par ex DIMENTION 1 : DIMENTION 2 etc.. Tu doit mettre le nom de la feuille de la même façon, si tu veux travaillé par incrémentation il faut employer sheets(x)
A+
louis
cib
Messages postés
17
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
11 juillet 2007
15 mai 2007 à 14:23
15 mai 2007 à 14:23
merci pour les propositions.
maintenant j'ai:
Worksheets("DIMENSIONS (F)").Range("B21").FormulaR1C1 = "=IMPORT!A3"
qui me retourne dans la cellule B21 :
=IMPORT!'A3' du coup j'ai #NOM?
DIMENSIONS (F) est le nom de la feuille, j'ai essayé avec un nom plus simple ABC mais c'est pareil.
a+
Cib
maintenant j'ai:
Worksheets("DIMENSIONS (F)").Range("B21").FormulaR1C1 = "=IMPORT!A3"
qui me retourne dans la cellule B21 :
=IMPORT!'A3' du coup j'ai #NOM?
DIMENSIONS (F) est le nom de la feuille, j'ai essayé avec un nom plus simple ABC mais c'est pareil.
a+
Cib
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
15 mai 2007 à 17:17
15 mai 2007 à 17:17
Effectivement, d'ailleurs tu peux tester en écrivant =IMPORT!A3 dans une cellule, ça fonctionne, le problème vient bien des quote qui se mettent automatiquement autour de A3, mais je ne sais pas comment empêcher ça...
Ah si, j'ai trouvé, il faut remplacer le .FomulaR1C1 par un .Value et ça fonctionne, va savoir pourquoi... ;-)
Ah si, j'ai trouvé, il faut remplacer le .FomulaR1C1 par un .Value et ça fonctionne, va savoir pourquoi... ;-)
BlaBlaBla.FormulaR1C1 fonctionne avec des arguments RELATIFS à la case en cours (c'est à clire qu'il va falloir lui dire EN RELATIF quel case prendre, et non selectionner directement la case " A3 ").
Comme on veut importer 'directement' la formule, c'est à dire 'telle qu'elle est écrite', sans que le programme le recalcule la position, il faut lui balancer l'info sous forme de
BlaBlaBla.value = "MaFormuleQuiNeDoitPasEtreRecalculée".
(notez que "MaFormuleQuiNeDoitPasEtreRecalculéeé" doit être écrite : " = A1 - A2 ", c'est à dire qu'il faut un " = " dans les guillemets AUSSI !
ce qui donne : BlaBlaBla.value = " = A1 - A2 " )
Un exemple d'utilisation de formule R1C1 serait : tu me prends la valeur une colonne au dessus, 3 lignes en dessous : BlaBlaBla.FormulaR1C1 = R[3]C[-1]
...Et il va interpréter en RELATIF la ligne et la colonne (C[-1] : une colonne au dessus, R[3] : 3 lignes en dessous)
Comme on veut importer 'directement' la formule, c'est à dire 'telle qu'elle est écrite', sans que le programme le recalcule la position, il faut lui balancer l'info sous forme de
BlaBlaBla.value = "MaFormuleQuiNeDoitPasEtreRecalculée".
(notez que "MaFormuleQuiNeDoitPasEtreRecalculéeé" doit être écrite : " = A1 - A2 ", c'est à dire qu'il faut un " = " dans les guillemets AUSSI !
ce qui donne : BlaBlaBla.value = " = A1 - A2 " )
Un exemple d'utilisation de formule R1C1 serait : tu me prends la valeur une colonne au dessus, 3 lignes en dessous : BlaBlaBla.FormulaR1C1 = R[3]C[-1]
...Et il va interpréter en RELATIF la ligne et la colonne (C[-1] : une colonne au dessus, R[3] : 3 lignes en dessous)