Je viens de t'envoyer le Fichier XLS par email
Regarde, car perso je n'est rien modifier :(
Version imprimable
Je viens de t'envoyer le Fichier XLS par email
Regarde, car perso je n'est rien modifier :(
Je viens de voir ton dernier post.
C'est bien ce que je pensais. Tu formates ta cellule, non extrac_dates.
As-tu la possibilité de formater extrac_dates avant de la coller dans la cellule ?
Tu dis
Je tes envoye le code source via Email
Essaie ça
A +Code:
1
2
3 For i = PremièreLigne to dernièreLigne Cells(i, 13) = Format(cdate(Cells(i, 13).value), "dd/mm/yyyy") Next
(Pas reçu ton mail)
Bon sa avance dans le bon sens :)
Alors pour certaine date c'est OK. elle sont centré a gauche dans la cellule
Par contre pour dautre non, l'heure est passé a 00:00:00
et c'est centré a droite de la celulle
C'est SUPER MEGA GOOD.
Cela fonctionne avec le code que tu viens de m'envoyer par email
Un GRAND merci a toi, pour ton aide, et ta patience.
Donc voici le code pour les personnes interressé.
Citation:
Dim extrac_dates As Date
Dim DerniereLigne As Double
'recupere la dernere ligne occupé dans la colonne A
'(jusqu'à ce qu'une ligne soit vide)
DerniereLigne = Worksheets(3).Range("M1").CurrentRegion.End(xlDown).Row
'pour chacune de ces lignes on ne garde que les 10 premeirs caracteres
For i = 2 To DerniereLigne
extrac_dates = Cells(i, 13)
Cells(i, 13).Select
Selection.NumberFormat = "dd/mm/yyyy"
Cells(i, 13) = Left(Cells(i, 13), 10)
Next
Quelle solution as-tu adopté ? Le formatage de la variable ou celui de la cellule ?
Tu dis
A non y a une erreur. Regarde dans le fichier TEST.XLS que tu ma renvoyé.
pour certaine date le mois a été intervertir avec le jour. et pour d'autre date non.
L'intérêt de traiter par le forum, c'est ça. Quand il y a un pb, on est plusieurs à pouvoir le trouver.
Je maintiens que la solution n'est pas de tronquer une date.
Enfin, comme tu ne dis pas à qui tu as envoyé le fichier, je te laisse avec lui. J'en avais assez de regarder ma boîte aux lettres.
Les mp n'apportent rien au forum en n'offrant aucune solution aux autres.
Enfin, dans le code qui t'a été passé
extrac_dates = Cells(i, 13) ne sert à rienCitation:
For i = 2 To DerniereLigne
extrac_dates = Cells(i, 13)
Cells(i, 13).Select
Selection.NumberFormat = "dd/mm/yyyy"
Cells(i, 13) = Left(Cells(i, 13), 10)
Next
et si à la place de
tu fais ce que je t'ai dit dans mon dernier post, tu auras le bon résultatCitation:
Cells(i, 13) = Left(Cells(i, 13), 10)
Ceci dit comme tu ne réponds pas à mes questions, je passe à autre chose car... j'ai autre chose à faire.
OUPPSS !
Excuse moi j'ai confonud les pseudo:
- ELSTAK ( a qui j'ai envoyé le fichier)
et le tiens :(
Désolé.
Je viens donc de modifier le code comme tu me la conseillé.
a savoir:
Pour certaine date c'est OK. elle sont centré a gauche dans la cellule avec juste DD/mm/yyCitation:
Dim extrac_dates As Date
Dim DerniereLigne As Double
'recupere la dernere ligne occupé dans la colonne A
'(jusqu'à ce qu'une ligne soit vide)
DerniereLigne = Worksheets(3).Range("M1").CurrentRegion.End(xlDown).Row
'pour chacune de ces lignes on ne garde que les 10 premeirs caracteres
For i = 2 To DerniereLigne
extrac_dates = Cells(i, 13)
Cells(i, 13).Select
Selection.NumberFormat = "dd/mm/yyyy"
Cells(i, 13) = Format(CDate(extrac_dates), "dd/mm/yyyy")
Next
Par contre pour dautre non, l'heure est passé a 00:00:00
et c'est centré a droite de la celulle
Ok, pas de bobo
Essaie ça. Devrait fonctionner si ta date avec l'heure se trouve bien déjà dans la cellule i, 13Code:
1
2
3
4 For i = 2 To DerniereLigne Cells(i, 13).value = Format(CDate(Cells(i, 13).value), "dd/mm/yyyy") Next
N'ajoute rien au code.
A+
Donc Même prob que tout a l'heure.
Par contre je viens de remarquer que les champs traité partciellement
(Non suppréssion de l'heure et passage de celle ci en 00:00:00)
Le mois et le jour son inversé. Se qui donne (mois de mai)
05/09/2006 00:00
On y est. Le problème provient très probablement du fait que tu colles directement ton extraction dans la cellule.Citation:
(Non suppréssion de l'heure et passage de celle ci en 00:00:00)
Le mois et le jour son inversé. Se qui donne (mois de mai)
05/09/2006 00:00
Essaie de la formater avant de coller la valeur extraite dans la cellule.
Tu dis
Je ne peux pas. Ma base sql compte 37 Champs.
Je fait donc un SELECT *
Ok.
Avant de formater, les dates sont-elles bonnes ?
(j'ai peut-être une idée)
A+
Est je viens de regarder.
Oui toute mes dates son correcte
Taille des champs identique. No problem
Comment déclares-tu extrac_dates dans la solution où tu l'utilises ?
A+
En Date
Dim extrac_dates As Date
Dim DerniereLigne As Double
tes dates sont bien correctes avant de lancer une fonction du genre :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub test() Dim DerniereLigne As Double Dim extrac_dates As String 'recupere la dernere ligne occupé dans la colonne M '(jusqu'à ce qu'une ligne soit vide) DerniereLigne = ActiveSheet.Range("M2").CurrentRegion.End(xlDown).Row 'pour chacune de ces lignes on ne garde que les 10 premeirs caracteres For i = 1 To DerniereLigne extrac_dates = Cells(i, 13) Cells(i, 13).NumberFormat = "@" Cells(i, 13) = Format(extrac_dates, "dd/mm/yyyy") ' Ou Si probléme remplace d'inversion jour/mois remplace la ligne format par : 'Cells(i, 13) = Day(extrac_dates) & "/" & Month(extrac_dates) & "/" & Year(extrac_dates) Next End Sub
Déclare-les en string et utilise le code d'Elzak modifié comme ça
Tu disCode:
1
2
3
4
5 For i = 2 To DerniereLigne extrac_dates = Cells(i, 13) Cells(i, 13) = Format(CDate(extrac_dates), "dd/mm/yyyy") Next
A+