inscrire une formule dans une cellule - VB/VBA/VBS - Programmation
Marsh Posté le 12-01-2013 à 11:52:02
Bonjour ! Merci de préciser quelle ligne déclenche l'erreur ‼
Dans ce cas, c'est clair que cela vient de la .FormulaLocal …
Pour la compréhension, prendre le problème à l'envers !
Entrer manuellement dans une cellule la formule puis vérifier qu'elle fonctionne.
Sélectionner la cellule (elle doit donc être active).
Ouvrir l'éditeur VBA, dans la fenêtre Exécution (l'ouvrir si besoin via le menu Affichage)
entrer ? activecell.formulalocal et valider.
Et là j'attends ton retour !
Astuces :
► Eviter les .Activate & .Select autant que possible car cela alourdit le code et rend son exécution plus lente ‼
Exemple :
Code :
|
C'est plus rentable de directement manipuler les objets …
► Dans le cas d'entreprise internationale (Excel en différentes langues),
mieux vaut directement travailler avec .Formula au lieu de .FormulaLocal.
Là le code fonctionnera indépendamment de la langue locale d'Excel …
En utilisant la même procédure, entrer manuellement la formule dans une cellule, la laisser active
puis voir dans la fenêtre Exécution de l'éditeur VBA sa formule interne via ? .activecell.formula …
Marsh Posté le 14-01-2013 à 16:21:31
Bonjour Marc L,
Tout d'abord merci pour votre réponse.
Effectivement l'erreur 1004 provient de .FormulaLocal
Je suis désolé mais je ne comprends toujours pas l'erreur. Je cherche comme énoncé ci-dessus mais n'étant que débutant en vba je ne saisis pas d'où provient mon erreur.
Pourriez-vous m'aider un peu plus ?
Marsh Posté le 15-01-2013 à 11:57:25
J'ai trouvé comment y remédier.
Voici comment j'ai procédé :
Sheets("Graphiques" ).Select
Range("B2" ).Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Recap données'!C[6],Graphiques!RC[-1])"
Range("B2" ).Select
Selection.AutoFill Destination:=Range("B2:B7" ), Type:=xlFillDefault
Range("B2:B7" ).Select
Range("C2" ).Select
Encore merci pour l'aide apportée.
Marsh Posté le 16-01-2013 à 21:27:59
Bien, mais il y avait une méthodologie pour t'en sortir dans ma réponse …
Au passage, tes 2 dernières lignes ne servent à rien ‼
Marsh Posté le 16-01-2013 à 21:42:18
OK merci.
JE suis désolé mais je ne comprends pas toutes les subtilités de vba car je commence seulement à m'y mettre.
Mais soit sur que tes infos me serviront. Je m'y pencherais dès que le pourrais.
Encore merci pour cette méthodologie.
Marsh Posté le 11-01-2013 à 23:10:12
Bonjour,
Je chercher à inscrire une formule dans une cellule. Voici le code tapé :
Sheets("Graphiques" ).Select
Range("B2" ).Select
ActiveCell.FormulaLocal = "=NB.SI('Recap données'!H:H,Graphiques!A2)"
Range("B2" ).Select
Selection.AutoFill Destination:=Range("B2:B7" ), Type:=xlFillDefault
Range("B2:B7" ).Select
J'ai une erreur 1004 et je ne comprends pas pourquoi.
Pourriez-vous m'aider s'il vous plait ?
Cordialement