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 :

Controle du format date dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut Controle du format date dans une cellule
    Bonjour

    Je voudrais mettre une condition ds ma macro pour controler la valeur de la cellule.

    J'ai des cellules qui ont une valeur de ce type 02/02/2013 09:12:53 et d'autres celle ci 12/02/2013,

    si ma cellule a cette valeur 02/02/201309:12:53 alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debut = Left(Worksheets("BASE").Range("M" & i).Value, Len(Worksheets("BASE").Range("M" & i).Value) - 9)
    pour supprimer les heures

    si ma cellule a cette valeur 02/02/2013 alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debut = Worksheets("BASE").Range("M" & i).Value
    Je n'ai pas trouvé ds le fofo

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si seulement pour afficher les Dates sans les heures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("BASE").Range("M:M").NumberFormat = "dd/mm/yyyy"
    Si par contre tu veux supprimer les heures, il suffit de prendre la partie entière de tes dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim c As Range
     
    For Each c In Worksheets("BASE").Range("M2:M200")
        If IsDate(c) Then c = CLng(c)
    Next c
    Worksheets("BASE").Range("M:M").NumberFormat = "dd/mm/yyyy"
    EDIT

    Fais Tu auras dans début ta date sans les heures
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    je vais definir ma variable comme tu me le conseille, je fais l'essai et je te dirais si c'est ok

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim Date1 as String
    Dim Date3 as Date
     
    date1 = Worksheets("IMPORT").Cells(i, 13).Value 'debut planifie
     If IsDate(date1) Then 'controle si c'est une date
          date1 = Left(date1, Len(date1) - 9) 'suppression des heures
          date3 = date1 'conversion en format date
          Worksheets("IMPORT2").Range("M" & j) = date3
     End If
    Comme ceci sa marche, les autres manieres arrondissaient les dates ou pas ce qui me poser pb ds mon graphe de Gantt


    Mais il y une exception, c'est lorsque ma cellule possede une valeur de ce type 18/02/2013 00:00:00, ce qui me donne une mauvaise date pour la suite.

    Avez vous une petite astuce

    Merci d'avance

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim Date1
    Dim Date3 As Date
        Date1 = Worksheets("IMPORT").Cells(i, 13).Value 'debut planifie
        If IsDate(Date1) Then 'controle si c'est une date
            Date1 = Int(CDbl(Date1)) 'suppression des heures
            Date3 = CDate(Date1) 'conversion en format date
            Worksheets("IMPORT2").Range("M" & j) = Date3
        End If
    End Sub
    Cordialement.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    merci gFZT82 pour ta solution, l'essayer c'est l'adopter

    Merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre une date dans une cellule avec le bon format
    Par wrm8787 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2009, 17h54
  2. Forcer le format des dates dans une cellule
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/10/2008, 13h20
  3. comment forcer le format date dans une requête
    Par chauvex99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/07/2007, 09h49
  4. date dans une cellule de jTable
    Par norkoffire dans le forum Composants
    Réponses: 4
    Dernier message: 14/06/2007, 16h27
  5. Format date dans une requete SQL
    Par noratec dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/01/2007, 12h06

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