Formule générée par 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 !

Emeric

XLDnaute Nouveau
Bonjour à tous 🙂 ,
Je suis débutant en VBA et actuellement en train de programmer une macro qui permet de classer des données en fonction de la date.

Initialement la date est au format "JJ/MM/AAAA" , ma macro permet de copier ces dates dans mon nouveau classeur, cependant, je dois également les traduire en numéro de semaine.
J'ai trouvé sur le net une formule qui permet d'obtenir le numéro de semaine à partir d'une date au format "JJ/MM/AAAA" , cette formule est la suivante : = ENT(MOD(ENT((C1-2)/7)+0,6;52+5/28))+1

J'aimerais que cette formule s'applique à chaque ligne sans avoir à l'étirer sur la colonne après éxecution de la macro. J'ai essayé de procéder de la plus simple des manières en créant une nouvelle macro, puis en modifiant l'enregistrement, mais impossible d'y arriver 😡

Quelle est la syntaxe que je dois utiliser?

Sachant que les numéros de semaine sont classés dans la colonne F, et que les dates au format "JJ/MM/AAAA" sont classées dans la colonne C.

Merci à ceux qui pourront me répondre.
Si mon problème est mal posé, n'hésitez pas à me demander plus de renseignements.
Cordialement

EC
 
Re : Formule générée par macro

Bonjour Emeric et bienvenu, bonjour le forum,

Peut-être comme ça, en rajoutant ces quelques lignes en fin de ta macro (sauf la déclaration de variable Dim qu'il est préférable mettre au début...) :
Code:
Dim dl As Integer
dl = Cells(Application.Rows.Count, 3).End(xlUp).Row
Range("F1").FormulaR1C1 = "= INT(MOD(INT((RC[-3]-2)/7)+0.6,52+5/28))+1"
Range("F1").AutoFill Destination:=Range("F1:F" & dl), Type:=xlFillDefault
 
Re : Formule générée par macro

Bonjour TempusFugit et merci pour ta solution !

Désolé de vous solliciter encore un peu mais j'ai à nouveau un petit soucis, je souhaite également traduire le mois en toutes lettres, pour cela j'utilise la formule suivante : =TEXTE("1/"&MOIS(C2);"mmmm")"

Je procède de la même façon que pour la date :
Range("G2:G" & [C65536].End(xlUp).Row).FormulaR1C1 = " =TEXTE("1/"&MOIS(C2);"mmmm")"

Et là, j'ai un message d'erreur qui me dit "Erreur de compilation Attendu : fin d'instruction" , c'est peut être dû aux guillemets dans la formule?

Que dois-je faire?
Merci d'avance !
 
Re : Formule générée par macro

Yes ça marche, aussi simple que ça!
Encore merci, on peut compter sur vous!

Juste une petite question pour ma culture perso,
Que signifie la syntaxe RC[-3] , RC[-4]?
Si la formule dépend de plusieurs cellules (colonne A et B et C), quelle syntaxe faut-il utiliser?
 
Re : Formule générée par macro

R=Row ce qui veut dire ligne
C=Column ce qui veut colonne

RC[-4] veut donc dire colonne -4 donc colonne C si la formule est en colonne G
ce qui est le cas ici.

Sinon par commodité tu peux utiliser cette autre syntaxe:
Code:
Range("G2:G" & [C65536].End(xlUp).Row).FormulaLocal = "=TEXTE(C2;""mmmm"")"
 
Dernière édition:
- 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

Réponses
3
Affichages
151
Réponses
7
Affichages
480
Réponses
5
Affichages
372
Réponses
6
Affichages
744
Réponses
10
Affichages
225
Réponses
8
Affichages
467
Retour