IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]Tronquer une DATE


Sujet :

Macros et VBA Excel

  1. #41
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    Je viens de t'envoyer le Fichier XLS par email

    Regarde, car perso je n'est rien modifier

  2. #42
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    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

  3. #43
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    Je tes envoye le code source via Email

  4. #44
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = PremièreLigne to dernièreLigne
         Cells(i, 13) = Format(cdate(Cells(i, 13).value), "dd/mm/yyyy")
    Next
    A +

    (Pas reçu ton mail)

  5. #45
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    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

  6. #46
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    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é.

    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

  7. #47
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Quelle solution as-tu adopté ? Le formatage de la variable ou celui de la cellule ?

    Tu dis

  8. #48
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    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.

  9. #49
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    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é
    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
    extrac_dates = Cells(i, 13) ne sert à rien

    et si à la place de
    Cells(i, 13) = Left(Cells(i, 13), 10)
    tu fais ce que je t'ai dit dans mon dernier post, tu auras le bon résultat

    Ceci dit comme tu ne réponds pas à mes questions, je passe à autre chose car... j'ai autre chose à faire.

  10. #50
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    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:

    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
    Pour certaine date c'est OK. elle sont centré a gauche dans la cellule avec juste DD/mm/yy
    Par contre pour dautre non, l'heure est passé a 00:00:00
    et c'est centré a droite de la celulle

  11. #51
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok, pas de bobo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To DerniereLigne
    Cells(i, 13).value = Format(CDate(Cells(i, 13).value), "dd/mm/yyyy")
    Next
    Essaie ça. Devrait fonctionner si ta date avec l'heure se trouve bien déjà dans la cellule i, 13

    N'ajoute rien au code.

    A+

  12. #52
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    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

  13. #53
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    (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.
    Essaie de la formater avant de coller la valeur extraite dans la cellule.

    Tu dis

  14. #54
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    Je ne peux pas. Ma base sql compte 37 Champs.
    Je fait donc un SELECT *

  15. #55
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok.
    Avant de formater, les dates sont-elles bonnes ?
    (j'ai peut-être une idée)

    A+

  16. #56
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    Est je viens de regarder.
    Oui toute mes dates son correcte
    Taille des champs identique. No problem

  17. #57
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Comment déclares-tu extrac_dates dans la solution où tu l'utilises ?
    A+

  18. #58
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 5
    Points
    5
    Par défaut
    En Date

    Dim extrac_dates As Date
    Dim DerniereLigne As Double

  19. #59
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tes dates sont bien correctes avant de lancer une fonction du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  20. #60
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Déclare-les en string et utilise le code d'Elzak modifié comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Tu dis

    A+

Discussions similaires

  1. [VBA-excel] Affecter une date à la première cellule pleine
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 10/11/2006, 12h06
  2. [VBA]Filtre sur une date
    Par illight dans le forum SDK
    Réponses: 2
    Dernier message: 09/11/2006, 09h45
  3. [VBA-E] choisir une date dans un calendrier
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/03/2006, 09h05
  4. Comment tronquer une date (supprimer les heures)
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 27/01/2006, 15h58
  5. [VBA Excel] convertir une date francaise au format anglais
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo