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 :

diviser une cellule date et heure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut diviser une cellule date et heure
    Bonjour,

    J'ai une colonne qui contient des dates et un horaires sous la forme : 15/10/2007 10:00

    J'aurai besoin d'une colonne DATE et d'une colonne HEURE, comment faire (en VBA) pour séparer les celulles en deux cellules distinctes contenant les bonnes données ?

    J'ai déjà essayé de copier les colonnes puis d'effectuer un changement de format, mais ça n'est pas suffisant car la cellule de destination conserve quand même en mémoire la partie heure ou date que je cherche à supprimer. Or, j'ai ensuite besoin de faire un tri sur ces colonnes. En clair, mon but n'est pas simplement de changer le format pour raisons esthétiques, mais vraiment de ne récupérer qu'une partie de la valeur.

  2. #2
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    Les dates sont stockées sous la forme d'un nombre dans lequel la partie entière représente le nombre de jours depuis le 31.12.1899, et la partie décimale l'heure sous la forme d'une fraction de jour.

    Si la date est dans la cellule A1, la date seule sera donc donnée par la formule et l'heure avec la formule

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    En respectant le format donné pour ta cellule ("15/10/2007 10:00"), pour la date, la formule à placer dans la cellule isolant la date serait «ExtractDate»
    et la formule pour la cellule isolant l'heure serait «ExtractTime», à condition d'avoir codé les fonctions appelées de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function ExtractDate(DateTimeStr As String) As String
      Dim PosSpace As Integer
      PosSpace = InStr(DateTimeStr, " ")
      ExtractDate = Left(DateTimeStr, PosSpace - 1)
    End Function
    Public Function ExtractTime(DateTimeStr As String) As String
      Dim PosSpace As Integer, StrLen As Integer
      PosSpace = InStr(DateTimeStr, " ")
      StrLen = Len(DateTimeStr)
      ExtractTime = Right(DateTimeStr, StrLen - PosSpace)
    End Function

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Par défaut
    Bonjour à tous.

    Avez-vous essayé la conversion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("A:A").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
              Space:=True, FieldInfo:=Array(Array(1, 1), Array(2, 1))

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/07/2010, 11h18
  2. Ajouter des heures dans une cellule date
    Par j.mathieu dans le forum Excel
    Réponses: 3
    Dernier message: 22/01/2010, 14h39
  3. diviser une cellule en fonction d'un caractère
    Par marty499 dans le forum Excel
    Réponses: 2
    Dernier message: 03/06/2008, 16h44
  4. Réponses: 6
    Dernier message: 28/05/2007, 19h00
  5. [HTML] Tableau - diviser une cellule en 2 dans la diagonale
    Par LE NEINDRE dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 20/02/2006, 10h32

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