OVH Cloud OVH Cloud

Date du jour via une macro

6 réponses
Avatar
Renard du désert
Bonjour,

A l'aide d'une macro, j'ai besoin de la date du jour. Je pensais le réaliser
de la manière suivante :
' date du jour
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = "=AUJOURDHUI()"

Malheureusement, j'obtiens uniquement ce message d'erreur #nom ?

Savez vous pourquoi ? avez vous une solution ?

D'avance merci pour votre aide

6 réponses

Avatar
manu l.
Bonsoir,

Il faut mettre :

Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = "=TODAY()"

D'après l'aide, il faut mettre la formule "dans le langage de la macro".

Elle doit parler anglais...

Bonne soirée.

--
manu l.

"Renard du désert" a écrit dans le message de
news:bm1qee$134$
Bonjour,

A l'aide d'une macro, j'ai besoin de la date du jour. Je pensais le
réaliser

de la manière suivante :
' date du jour
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = "=AUJOURDHUI()"

Malheureusement, j'obtiens uniquement ce message d'erreur #nom ?

Savez vous pourquoi ? avez vous une solution ?

D'avance merci pour votre aide





Avatar
gee-dee-
Bonsoir,

simple probleme de cohérence de langue ..... ;-)
soit :
pour EXCEL en français
Sheets(Val).Cells(counter, DateVente).FormulaLocal = "=AUJOURDHUI()"

ou alors
pour Excel en anglais
Sheets(Val).Cells(counter, DateVente).Formula = "=TODAY()"

le R1C1 n'a pas lieu d'etre précisé, la fonction n'ayant pas de paramétre

;-)))
mais quelle que soit la langue locale la formule apparaitra sur la feuille
dans la langue correcte !!!!
@+
Avatar
Bourby
Bonsoir,

Excel n'est pas VBA, et réciproquement.

La fonction VBA qui retourne la date s'appelle Date
(sans parenthèses après). Donc:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = Date

Si tu tiens à employer une Fonction xcel dans VBA, il faut le lui "dire"
avec la fonction VBA Evaluate(.....). Donc ici:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = Evaluate(AUJOURDUI())

Il y a une syntaxe simplifiée pour Evaluate(...) , c'est [...]. Donc
ici:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = [AUJOURDUI()]

Est-ce la réponse à ton problème? Bon Excel dans ton désert.

Bourby


"Renard du désert" a écrit dans le message news:
bm1qee$134$
Bonjour,

A l'aide d'une macro, j'ai besoin de la date du jour. Je pensais le
réaliser

de la manière suivante :
' date du jour
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = "=AUJOURDHUI()"

Malheureusement, j'obtiens uniquement ce message d'erreur #nom ?

Savez vous pourquoi ? avez vous une solution ?

D'avance merci pour votre aide





Avatar
Clément Marcotte
Bonjour,

Au lieu de t'embourber dans ces histoires de Formula, tu pourrais
utiliser directement la fonction VBA Date()

Sheets(Val).Cells(counter, DateVente).value = date()


"Renard du désert" a écrit dans le message de
news:bm1qee$134$
Bonjour,

A l'aide d'une macro, j'ai besoin de la date du jour. Je pensais le
réaliser

de la manière suivante :
' date du jour
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = "=AUJOURDHUI()"

Malheureusement, j'obtiens uniquement ce message d'erreur #nom ?

Savez vous pourquoi ? avez vous une solution ?

D'avance merci pour votre aide





Avatar
AV
Heu....Qques objections......

Si tu tiens à employer une Fonction xcel dans VBA, il faut le lui "dire"
avec la fonction VBA Evaluate(.....). Donc ici:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = Evaluate(AUJOURDUI())
Il y a une syntaxe simplifiée pour Evaluate(...) , c'est [...]. Donc
ici:

Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = [AUJOURDUI()]


Aucune des 2 instructions précédentes ne peut fonctionner !
La méthode Evaluate nécessite, lorsqu'on les utilise, d'employer les noms de
fonctions en anglais
Evaluate(....) dans sa syntaxe "longue" évalue la chaîne de caractères située
entre les parenthèses.
Il est donc impératif d'utiliser les guillemets : Evaluate("TODAY()")
La syntaxe "courte" dispense de cette utilisation (sous réserve qu'il n'y ai pas
de variable à intéger)
: [TODAY()]

Pour qques exemples de la méthode :
http://disciplus.simplex.free.fr/classeursxl/av-evaluate.zip

AV

Avatar
Bourby
oh, oui, oui, oui,

c'est après le clic d'envoi que je me suis dit
que j'avais dérapé grave.
C'est gentil de ne pas avoir été trop sarcastique;
je viens sur le forum pour apprendre, voilà qui est fait.
Maintenant les erreurs sont réparées, merci...

Bourby


"AV" a écrit dans le message news:
bm2hup$qev$
Heu....Qques objections......

Si tu tiens à employer une Fonction xcel dans VBA, il faut le lui "dire"
avec la fonction VBA Evaluate(.....). Donc ici:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 Evaluate(AUJOURDUI())
Il y a une syntaxe simplifiée pour Evaluate(...) , c'est [...].
Donc


ici:
Sheets(Val).Cells(counter, DateVente).FormulaR1C1 = [AUJOURDUI()]


Aucune des 2 instructions précédentes ne peut fonctionner !
La méthode Evaluate nécessite, lorsqu'on les utilise, d'employer les noms
de

fonctions en anglais
Evaluate(....) dans sa syntaxe "longue" évalue la chaîne de caractères
située

entre les parenthèses.
Il est donc impératif d'utiliser les guillemets : Evaluate("TODAY()")
La syntaxe "courte" dispense de cette utilisation (sous réserve qu'il n'y
ai pas

de variable à intéger)
: [TODAY()]

Pour qques exemples de la méthode :
http://disciplus.simplex.free.fr/classeursxl/av-evaluate.zip

AV