format de date

M

MangePasDpain

Guest
Bonjour à tous,

Voila ou j'en suis:
j'ai une cellule (A1) qui contient une valeur :"200502"

j'utilise la fonction suivante sur une autre cellule (A2) pour obtenir une date lisible:

"=CNUM(DROITE(Table!A1;2)+1&""/""&GAUCHE(Table!A1;4))"

En saisissant la fomule directement ds la cellule ,
j'obtiens : 02/2005.

En changeant le format de cellule j'obtiens : "février - 05"
Pour l'instant tout va bien.....

Mais si je veux integrer cette formule à une macro, on va dire pour créer une page qui contient les même cellules ca ne marche plus.

Range("A2").value="=CNUM(DROITE(Table!A1;2)+1&""/""&GAUCHE(Table!A1;4))"

ou

Range("A2").Formula="=CNUM(DROITE(Table!A1;2)+1&""/""&GAUCHE(Table!A1;4))"

Le résultat à l'affichage est : "02/2005" quel que soit le format de date de la cellule "A2".

Pourquoi je n'obtiens pas "février-05" ?(Hein....pourquoi...?)

Merci de vos réponses pour m'éclairer sur les propriétés de Value et de Formula.
 
M

MangePasDpain

Guest
Bonjour Wilfried,

Je suis désolé mais je ne comprend pas ta réponse......
Je ne nomme aucune page dans cette partie de macro.
En plus,je n'obtiens pas de message d'erreur mais un affichage de la cellule qui ne correspond pas a ce que je souhaite.

Si je force dans ma macro le format de date qui m'interesse....meme resultat

Merci quand meme d'avoir pris le temps de me répondre.
 
M

MangePasDpain

Guest
Bonjour Chti'160,

mon problème viens surtout de fait que je n'obtienne pas ma date au format désiré : "février - 05".

Quelque soit le format de cellule (texte,monétaire,numérique)j'obtiens tjrs le meme résultat.

Merci pour tes recherches.
 
C

ChTi'160

Guest
re "MangePasDpain"
cette procèdure remplace dans la colonne A les chiffres par la date au format demandé
Sub formule()
Dim derlgn As Integer, lgn As Integer
Dim Tab1 As Variant
Application.ScreenUpdating = False
With Worksheets("Feuil1")
derlgn = .Range("A65536").End(xlUp).Row
Tab1 = .Range(.Cells(1, 1), .Cells(derlgn, 1)).Value
For lgn = 1 To UBound(Tab1, 1)
.Cells(lgn, 1) = Right(Trim(Tab1(lgn, 1)), 2) & " " & Left(Trim(Tab1(lgn, 1)), 4)
.Cells(lgn, 1) = Format(.Cells(lgn, 1), "mmmm - yy")
Next
End With
Application.ScreenUpdating = True
End Sub
A+++
Jean Marie
 
O

OnErrorResumeNext

Guest
bonjour tout le monde,

pour le fun j'avais trouvé un code plus simple en utilisant "DateSerial" :

---------------------------------------------------------------------------------
Sub tTime()

For i = 1 To [A65536].End(xlUp).Row
Cells(i, 2) = DateSerial(Mid(Cells(i, 1), 1, 4), Mid(Cells(i, 1), 5, 2), 1)
Columns("b").NumberFormat = "mmmm-yy"
Next

End Sub
---------------------------------------------------------------------------------

avec les nombres à convertir en colonne A,
les dates converties en colonne B

amicalement
 

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 550
Membres
104 208
dernier inscrit
laura29180