Enlever le Select et Selection de cette formule VBA

Bonjour,

Dans mes derniers contacts que j'ai eu avec le forum, on me rappelle souvent de mettre le moins possible le mot Select.

Je voudrais pour bien comprendre le système, comment mettre la formule d'exemple ci-dessous sur une seule ligne en vba

Range("A3").Select

ActiveCell.FormulaR1C1 = "=TODAY()"

Selection.NumberFormat = "ddd/dd/mmm/yy"

D'avance merci pour une réponse

Eugène

Bonjour,

Dans mes derniers contacts que j'ai eu avec le forum, on me rappelle souvent de mettre le moins possible le mot Select.

Je voudrais pour bien comprendre le système, comment mettre la formule d'exemple ci-dessous sur une seule ligne en vba

Range("A3").Select

ActiveCell.FormulaR1C1 = "=TODAY()"

Selection.NumberFormat = "ddd/dd/mmm/yy"

D'avance merci pour une réponse

Eugène

Bonjour,

Tout simplement :

Range("A3").FormulaR1C1 = "=TODAY()"
Range("A3").NumberFormat = "ddd/dd/mmm/yy"

Par ailleurs, si la date en A3 ne doit plus changer après exécution de la macro, ce serait plutôt :

Range("A3").Value = Date
Range("A3").NumberFormat = "ddd/dd/mmm/yy"

merci pedro22

C'est bien ce que je pensais, mais je voulais savoir si c'était possible autrement.

Grand merci pour tout

Eugèner

merci pedro22

C'est bien ce que je pensais, mais je voulais savoir si c'était possible autrement.

Grand merci pour tout

Eugèner

Il y a beaucoup d'autres variantes pour désigner la plage... Mais ça reste à mon avis l'une des plus simples !

Une autre possibilité pour la forme :

With Range("A3")
   .FormulaR1C1 = "=TODAY()"
   .NumberFormat = "ddd/dd/mmm/yy"
End With

Bonjour,

Je pense qu'on peut aussi indiquer le format directement sur la même ligne.

Range("A3").Value = Format(Date, "dd/mmm/yyyy")

Bonjour,

Je pense qu'on peut aussi indiquer le format directement sur la même ligne.

Range("A3").Value = Format(Date, "dd/mmm/yyyy")

Bonjour Xmenpl,

C'est juste, mais le résultat obtenu est un texte et non une date valide.

Bonjour, Pédro.

Je ne sais pas pour 2010 ?

Par contre pour 2013 c'est bien une date valide.

nouvelle image 30

Bonjour, Pédro.

Je ne sais pas pour 2010 ?

Par contre pour 2013 c'est bien une date valide.

Bonjour Xmenpl,

Le résultat de la fonction Format comme de la fonction Excel =TEXTE() est un texte. Pour le vérifier, tu peux te placer en dessous te ta date et écrire =A3+1. Néanmoins, Excel détecte dans certains cas une date stockée au format texte et propose de la remplacer par une date valide. Sauf qu'on revient au problème initial si la mise en forme de la date ne correspond pas au format d'affichage souhaité.

Oui Pedro je vois ce que tu veux dires mais il me semble que pour date et now

dans ma version c'est reconnu comme date dans excel.

Pour des textbox ou autre alors j'ajoutes les deux infos sur la même ligne.

exemple

Range("A3")=format(cdate(textbox1.value), "dd/mm/yyyy")
79test-date.xlsm (14.35 Ko)

Oui Pedro je vois ce que tu veux dires mais il me semble que pour date et now

dans ma version c'est reconnu comme date dans excel.

Pour des textbox ou autre alors j'ajoutes les deux infos sur la même ligne.

exemple

Range("A3")=format(cdate(textbox1.value), "dd/mm/yyyy")

Test-date.xlsm

Je viens de faire le test sur ton fichier, la date est effectivement valide dans la cellule malgré l'utilisation de Format(). Je ne sais pas à quelle moment elle est convertie de la sorte !

En revanche, la date stockée via la fonction Excel TEXTE() reste elle au format texte.

Bonjour,

si excel reconnait qu'il s'agit d'une date il convertira le texte en date au moment du transfert dans la cellule, mais en utilisant le format spécifié pour la cellule, pas le format de l'instruction format.

Sub test()
[C1] = Format(Now, "yyyy/mm/dd")
End Sub

Bonjour,

si excel reconnait qu'il s'agit d'une date il convertira le texte en date au moment du transfert dans la cellule, mais en utilisant le format spécifié pour la cellule, pas le format de l'instruction format.

Sub test()
[C1] = Format(Now, "yyyy/mm/dd")
End Sub

Salut h2so4 !

Ca revient à écrire directement :

Sub test()
[C1] = Date
'Ou :
[C1] = Int(Now)
End Sub

Je viens de faire le test sur ton fichier, la date est effectivement valide dans la cellule malgré l'utilisation de Format(). Je ne sais pas à quelle moment elle est convertie de la sorte !

En revanche, la date stockée via la fonction Excel TEXTE() reste elle au format texte.

çà me rassure j'étais pas en train de réver

Rechercher des sujets similaires à "enlever select selection cette formule vba"