Inscription d'une formule dans une cellule à travers une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SeropeDjen

XLDnaute Nouveau
Bonjour à tous ,
voila j'ai un probléme je souhaiterai à partir d'un macro insérer une formule dans une cellule.
J'ai utilisé la ligne suivante:
Range("T3").FormulaLocal = "=SI(B3<AUJOURDHUI();DATEDIF(B3;AUJOURDHUI();""d"");-DATEDIF(AUJOURDHUI();B3;""d""))"
elle fonctionne parfaitement bien. Mais elle renvoi dans la cellule T3 uniquement une valeur or moi je veux que cela renvoi la formule directement. Pour que à chaque ouverture la cellule soit remise à jour (en fonction de la date du jour).

Pouvez vous m'aider
Merci d'avance
 
Re : Inscription d'une formule dans une cellule à travers une macro

Bonjour SeropeDjen,

Je ne comprends pas bien ton soucis.

D'abord, il me semble que tu as déjà initié un fil sur ce sujet, non ?

voir :

https://www.excel-downloads.com/threads/probleme-dutilisation-de-formulalocal.112532/

Si tu as un problème avec les réponses données, c'est quand même plus courtois de continuer sur le même fil ... Et en plus, ça évite de surcharger le forum des mêmes sujets.

Ensuite, le code vba :

Code:
Range("T3").FormulaLocal = "=SI(B3<AUJOURDHUI();DATEDIF(B3;AUJOURDHUI();""d"" );-DATEDIF(AUJOURDHUI();B3;""d""))"

ne renvoit pas une valeur dans la cellule T3, mais bien une formule.

Il est vrai, que parmis les réponses à ton fil précédent, une des propositions que l'on t'a faite était de renvoyer une valeur, mais ce n'est pas la proposition qui te donnait le code ci-dessus.

Donc, qu’es aquò ?
 
Re : Inscription d'une formule dans une cellule à travers une macro

Voila j'ai mis mon fichier en ligne.

J'ai un onglet d'enregistrement d'une commande par exemple avec des informations à renseigner comme par exemple la date d'expedition etc...
Ces informations sont ensuite inscrites sous forme récapitulative dans l'onglet listing.
1)Moi ce que je souhaite dans un premier temps c'est dans la colonne "délais restant", d'avoir la formule :Range("T3").FormulaLocal = "=SI(B3<AUJOURDHUI();DATEDIF(B3;AUJOURDHUI();""d"" );-DATEDIF(AUJOURDHUI();B3;""d""))"

A ce jour dans mon fichier cela me renvoi une valeur. Pourquoi je ne sais pas.
Pour qu'à chaque consultation , le calcul du délais restant par rapport à la date du jour soit réactualisé.

2) Ensuite via l'onglet "voir OS", je souhaite rapatrier la commande précedement enregistrer depuis l'onglet listing. (Fonctionne, il faut juste mettre les bonne case en face)
Et de pouvoir apporter des modifications comme par exemple l'information "répondu le". Et ensuite remettre à jour la ligne correspondante à la commande consulter dans l'onglet "Listing".

Cijoint.fr - Service gratuit de dépôt de fichiers

J'espere que vous m'avez compris c'est pas simple à expliquer.

Merci d'avance en tout les cas
 
Re : Inscription d'une formule dans une cellule à travers une macro

J'ai revu ton code.

Je comprends que dans la cellule T3 tu veux affecter la formule :

=SI(B3<AUJOURDHUI();DATEDIF(B3;AUJOURDHUI();""d"");-DATEDIF(AUJOURDHUI();B3;""d""))

, et y voir apparaitre le résultat cette formule, ie : la différence en jours entre la date entrée dans B3 et la date d'aujourd'hui.

Et c'est bien ce que tu fais avec le code :

Range("T3").FormulaLocal = "=SI(B3<AUJOURDHUI();DATEDIF(B3;AUJOURDHUI();""d"");-DATEDIF(AUJOURDHUI();B3;""d""))"

Malgré cela, à la fin de l'exécution de ton code, tu as dans la cellule T3, la valeur de la différence de dates, mais pas la formule.

Je crois bien que c'est parce que, plus bas dans ton code, tu as ecrit :

Worksheets("LISTING").Rows(3).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues


Donc, dans la première partie de ton code, tu avais bien entré la formule de différence de dates, mais dans la suite de ton code tu écrases cette formule par ton PasteSpecial Paste:=xlValues.

@+
 
Dernière édition:
Re : Inscription d'une formule dans une cellule à travers une macro

Bonjour,

Je voudrais faire la meme chose avec la fonction SOMME.
La difference est que les arguments sont des variables de ma macro, comment faire pour que les arguments soient interpretes?
C'est-a-dire, dans ce cas :
param1 = A1
param2 = A10
B1.FormulaLocal = "SOMME(param1: param2)"

Je voudrais comme resultat dans ma feuille : SOMME(A1:A10)
et non pas SOMME(param1: param2) comme je l'ai actuellement.

Merci d'avance!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour