J'ai un problème de date... J'arrive à formater la date comme je veux mais
ce que je voudrais, c'est obtenir une date lorqu'on rentre une suite de
chiffre sans séparateur.
Je m'explique : dans un champ, si je rentre "01/01/05", j'ai l'affichage
"samedi 1 janvier 2005" (en fonction du formatage que j'ai choisi). Mais si
je rentre "010105", j'ai l'affichage "mercredi 31 aoput 1927"... ce qui est
logique puis qu'il prend le nombre 010105 et pas la date...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date (exemple : 260904 dans l'ordre jour-mois-an) Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range) If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub x = Format(zz, "000000") Application.EnableEvents = False zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2)) Application.EnableEvents = True End Sub
AV
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date (exemple :
260904 dans l'ordre jour-mois-an)
Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range)
If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub
x = Format(zz, "000000")
Application.EnableEvents = False
zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2))
Application.EnableEvents = True
End Sub
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date (exemple : 260904 dans l'ordre jour-mois-an) Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range) If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub x = Format(zz, "000000") Application.EnableEvents = False zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2)) Application.EnableEvents = True End Sub
AV
bulrog
Ben oui..., yaka !
Oufti ! Il me reste encore beaucoup de progrès à faire en VBA...
Merci beaucoup.
"AV" a écrit dans le message de news:
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date (exemple : 260904 dans l'ordre jour-mois-an) Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range) If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub x = Format(zz, "000000") Application.EnableEvents = False zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2)) Application.EnableEvents = True End Sub
AV
Ben oui..., yaka !
Oufti ! Il me reste encore beaucoup de progrès à faire en VBA...
Merci beaucoup.
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news:
uO4e7UeBFHA.2676@TK2MSFTNGP12.phx.gbl...
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date
(exemple :
260904 dans l'ordre jour-mois-an)
Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range)
If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub
x = Format(zz, "000000")
Application.EnableEvents = False
zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2))
Application.EnableEvents = True
End Sub
Oufti ! Il me reste encore beaucoup de progrès à faire en VBA...
Merci beaucoup.
"AV" a écrit dans le message de news:
Sous réserve de saisir 2 chiffres pour chacun des éléments de la date (exemple : 260904 dans l'ordre jour-mois-an) Dans le module de la feuille et pour la plage A1:A10 :
Private Sub Worksheet_Change(ByVal zz As Range) If Not IsNumeric(zz) Or Intersect(zz, [A1:A10]) Is Nothing Then Exit Sub x = Format(zz, "000000") Application.EnableEvents = False zz = DateSerial(Right(x, 2), Mid(x, 3, 2), Left(x, 2)) Application.EnableEvents = True End Sub