Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - le format d'une date 01/12/2005 pour garder 01

16 réponses
Avatar
twinley
Bonjour,


Je cherche en VBA le format d'une date 01/12/2005 pour garder uniquement à
l'affichage le jour 01.
Avec ce qui suit, ça passe pas, la date est modifiée

NDD = 3
Sheets(1).Cells(2, NDD) = CDate(DateSerial(2005, 12, 01))
Sheets(1).Cells(2, NDD) = Sheets(1).Cells(2, NDD).Format(Cells(2, NDD),
"dd")

alors que l'enregistreur donne :
Range("C2").Select
Selection.NumberFormat = "dd"

mais j'aimerai éviter le select. Il y a un défaut sur la paire cells et
format ?

Merci pour l'aide

a+twinley

6 réponses

1 2
Avatar
michdenis
Bonjour Daniel,

Bien sûr !

Je ne voulais pas confondre l'ami "twinley" !!

Et le copier-coller à de ces effets pervers !!!


Salutations!




"Daniel.M" a écrit dans le message de news:
Salut Denis,

Range("A1").NumberFormat = "DD" 'Anglais
Range("A1").Value = CDate(DateSerial(2005, 12, 01))


Je crois que DateSerial() suffit.

Range("A1").NumberFormat = "DD" 'Anglais
Range("A1").Value = DateSerial(2005, 12, 01)

Salutations,

Daniel M.

Avatar
Frédéric Sigonneau
Bonsoir Denis,

Tu as raison. Si Twinley veut garder une date pour réutilisation ultérieure,
alors la proposition de Daniel M. lui conviendra. Il a du choix :)

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Sheets(1).Cells(2, NDD) = Day(DateSerial(2005, 12, 1))
Sheets(1).Cells(2, NDD).NumberFormat = "00"


Et oui, elle a cependant le même défaut que l'approche à Jean-Claude ....


Salutations!





"twinley" <twinleym(at)hotmail.com> a écrit dans le message de news: OiU$
choli....
Merci Frédéric Sigonneau


Avatar
twinley
Bonsoir michdenis

J'ai opté pour la date vraie, car je ne sais ou les évolutions amèneront.
Comme cela si j'ai des calculs de dates à faire je serais dans le bon
format. C'et plus sain.
Bonne soirée
--
à+twinley
"michdenis" a écrit dans le message de
news:
Si tu utilises ceci :

Sheets(1).Cells(2, NDD) = Format(CDate(DateSerial(2005, 12, 1)), "dd")

la cellule affichera : 01 .. et son contenu ne sera pas directement
disponible pour usage de d'autre formule ....!


Cependant, si tu vas modifier son format : Barre des menus / format /
cellules / En format date, tu t'apercevras qu'elle

contient bien la date insérée mais que son format "Standard" t'empêche de
l'utiliser dans une autre formule comme > Mois(a1)


D'où mon affirmation du début... la fonction "Format" en vba ne s'applique
pas si on désire appliquer une format à une

cellule !

Au même titre que si tu fais cela :
Range("B5") = Format(1250.25, "# ##0.00 $")

La cellule sera au format standard, affichera le "bon format" mais la
saisie sera à gauche de la cellule car perçu comme

du texte et non une valeur numérique.


Salutations!



"twinley" <twinleym(at)hotmail.com> a écrit dans le message de news:
%

exact michdenis, le passage du format standard au format date me fais
basculer en 1900. Cela donne un calendrier juste à l'affichage mais on ne
peux pas faire de calcul de date vraie sauf si on la reconstruit depuis le
texte.
Belle leçon, merci
C'est quand même un casse-tête ces dates.
--
à+twinley
"michdenis" a écrit dans le message de
news:
Bonjour Jean-Claude,

Sheets(1).Cells(2, NDD) = Format(CDate(DateSerial(2005, 12, 1)), "dd")

Si juste à voir, on voit bien que la cellule affiche 1 , n'oublie pas
que


la cellule est au format "Standard" et non à
un format personnalisé "date" et la résultante est si tu fais référence
à


cette cellule dans une autre formule comme
ceci = Mois(A1) , je te laisse découvrir le résultat que tu obtiendras
et


cela ne devrait pas être 12.

;-)


Salutations!



"Jean-Claude" a écrit dans le message de news:


Sa lut,
Mettre la cellule concernée au format Texte
Puis utiliser le code suivant


NDD = 3
Sheets(1).Cells(2, NDD) = Format(CDate(DateSerial(2005, 12, 1)), "dd")

A+
Jc










Avatar
twinley
Sympa de prendre soin de moi.
Je suis aussi un maître du copié-collé en VBA mais pour d'autres raisons que
toi...

--
à+twinley
"michdenis" a écrit dans le message de
news:
Bonjour Daniel,

Bien sûr !

Je ne voulais pas confondre l'ami "twinley" !!

Et le copier-coller à de ces effets pervers !!!


Salutations!




"Daniel.M" a écrit dans le message de
news:

Salut Denis,

Range("A1").NumberFormat = "DD" 'Anglais
Range("A1").Value = CDate(DateSerial(2005, 12, 01))


Je crois que DateSerial() suffit.

Range("A1").NumberFormat = "DD" 'Anglais
Range("A1").Value = DateSerial(2005, 12, 01)

Salutations,

Daniel M.






Avatar
twinley
oui, ça a le mérite d'apprendre les variantes infinies de XL.

--
à+twinley
"michdenis" a écrit dans le message de
news:
Sheets(1).Cells(2, NDD) = Day(DateSerial(2005, 12, 1))
Sheets(1).Cells(2, NDD).NumberFormat = "00"


Et oui, elle a cependant le même défaut que l'approche à Jean-Claude ....


Salutations!





"twinley" <twinleym(at)hotmail.com> a écrit dans le message de news:
OiU$

choli....
Merci Frédéric Sigonneau
--
à+twinley
"Frédéric Sigonneau" a écrit dans le message
de

news:%
Bonjour,

Autre approche possible :

Sub test()
NDD = 3
Sheets(1).Cells(2, NDD) = Day(DateSerial(2005, 12, 1))
Sheets(1).Cells(2, NDD).NumberFormat = "00"
End Sub

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,


Je cherche en VBA le format d'une date 01/12/2005 pour garder
uniquement



à
l'affichage le jour 01.
Avec ce qui suit, ça passe pas, la date est modifiée

NDD = 3
Sheets(1).Cells(2, NDD) = CDate(DateSerial(2005, 12, 01))
Sheets(1).Cells(2, NDD) = Sheets(1).Cells(2, NDD).Format(Cells(2,
NDD),



"dd")

alors que l'enregistreur donne :
Range("C2").Select
Selection.NumberFormat = "dd"

mais j'aimerai éviter le select. Il y a un défaut sur la paire cells
et



format ?

Merci pour l'aide

a+twinley











Avatar
twinley
merci à tous, j'ai perdu la notion du temps avec tout ça....

--
à+twinley
"Frédéric Sigonneau" a écrit dans le message de
news:
Bonsoir Denis,

Tu as raison. Si Twinley veut garder une date pour réutilisation
ultérieure,

alors la proposition de Daniel M. lui conviendra. Il a du choix :)

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Sheets(1).Cells(2, NDD) = Day(DateSerial(2005, 12, 1))
Sheets(1).Cells(2, NDD).NumberFormat = "00"


Et oui, elle a cependant le même défaut que l'approche à Jean-Claude
....




Salutations!





"twinley" <twinleym(at)hotmail.com> a écrit dans le message de news:
OiU$


choli....
Merci Frédéric Sigonneau




1 2