Conversion d'une formule en code VBA [Résolu]

cs_antom 44 Messages postés vendredi 25 janvier 2008Date d'inscription 17 mai 2012 Dernière intervention - 22 févr. 2012 à 12:33 - Dernière réponse : cs_antom 44 Messages postés vendredi 25 janvier 2008Date d'inscription 17 mai 2012 Dernière intervention
- 22 févr. 2012 à 13:26
Salut à tous,

Je ne sais pas si je suis dans le bon forum, si non, au temps pour moi.

Est-ce que quelqu'un peut m'aider à retranscrire cette formule en VBA :

=DATE(ANNEE(AUJOURDHUI());1;1)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1))+1

Si possible en évitant de faire :

Cells(2, 2).Formula = "=DATE(ANNEE(AUJOURDHUI());1;1)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1))+1"

Normalement, ça devrait renvoyer 01.01.2012 avec le format date.

J'ai essayé pleins de combinaisons mais sans succès.

Si quelqu'un a l'amabilité de m'aider, je lui en serais reconnaissant.

Dans l'attente, je vous souhaite un bon appetit et vous remercie par avance !

mOOm.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 22 févr. 2012 à 13:05
3
Merci
JOURSEM te donne le numéro de jour dans la semaine :

1 - Dimanche
2 - Lundi
3 - Mardi
4 - Mercredi
5 - Jeudi
6 - Vendredi
7 - Samedi

en gros, tu demande de partir du premier jour de l'année que nous noterons A
Un dimanche, en 2012
A -JourSem +1

01/01/2012 - 1 + 1 => 01/01/2012
01/01/2011 - 7 + 1 => 26/12/2011

a supposer que cette formule soit correcte, tu peux faire, en VBA:
A = dateserial(Year(Date), 1,1)
A = A - Weekday(A) +1
Cells(2, 2) = FormatDateTime(A, vbShortDate)




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 22 févr. 2012 à 13:09
3
Merci
à noter que ce code :
Cells(2, 2).Formula = "=DATE(ANNEE(AUJOURDHUI());1;1)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;1))+1"


est à proscrire !

utiliser FormulaLocal. En effet, le nom de tes fonctions est traduit, le séparateur est le ';', défini dans tes regional settings (donc valable sur TON poste)

ou alors, utiliser la version traduite :
Cells(2, 2).Formula = "=DATE(YEAR(TODAY()),1,1)-WEEKDAY(DATE(YEAR(TODAY()),1,1))+1"


qui fonctionnera sur tous les postes


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Renfield
MarcPL 172 Messages postés jeudi 8 décembre 2011Date d'inscription 21 juillet 2013 Dernière intervention - 22 févr. 2012 à 12:48
0
Merci
Salut !

Déjà rien que =DATE(ANNEE(AUJOURDHUI());1;1) renvoie aussi 01/01/2012 !
Le mieux est d'expliquer littéralement (sans formule) ce dont tu as besoin ...

Sinon dans le fenêtre d'exécution de l'environnement VBA valide ? Cells(2, 2).Formula pour voir la formule en VBA ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL
cs_antom 44 Messages postés vendredi 25 janvier 2008Date d'inscription 17 mai 2012 Dernière intervention - 22 févr. 2012 à 13:26
0
Merci
Re,

D'abord merci pour vos réponses.

Marc, désolé il est vrai que peut-être n'ai-je pas été assez clair.
En fait, je voulais la date d'un jour x de telle semaine, dans la formule, j'avais oublié "7*numeroDeSemaine..."

Pourtant Renfield, ton bout de code, c'est exactement ce que je voulais... Chapeau bas !

Merci encore à vous deux !

Je ne sais pas où cliquer pour dire que c'est résolu, mais en tous cas, ça l'est !

mOOm.
Commenter la réponse de cs_antom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.