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 :

Excel 2016: Problème enregistreur de Macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Par défaut Excel 2016: Problème enregistreur de Macro
    Bonjour,

    Je rencontre le problème suivant: j'ai un classeur excel où la colonne A est composée d'une série de date de format : "JJ/MM/AAAA HH:MM:SS".
    Je voudrais obtenir dans cette colonne la même chose mais avec toutes les valeurs correspondants aux secondes égales à "00";
    Manuellement je parviens à le faire en sélectionnant toute la colonne A, puis en utilisant l'outil convertir les données, je choisis largeur fixe que je place juste avant les ":" des "SS" puis je fais suivant et terminer.
    Cela fonctionne très bien.
    Le problème est qu'avec l'enregistreur de Macro, quand je fais cette manipulation, j'obtiens le code suivant VBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Convertir()
    '
    ' Convertir Macro
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+L
    '
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
            FieldInfo:=Array(Array(0, 1), Array(17, 1)), TrailingMinusNumbers:=True
    End Sub
    Malheureusement le résultat n'est pas correct avec la macro.
    Pour illustrer mon propos, ci-dessous ce que j'obtiens manuellement:

    "Colonne A Colonne B
    Date
    01/01/2018 00:00:00 :00
    01/01/2018 00:15:00 :09
    01/01/2018 00:30:00 :33
    01/01/2018 00:45:00 :00
    01/01/2018 01:00:00 :00
    01/01/2018 01:15:00 :00

    "

    et ce que j'obtiens avec la macro:
    "Colonne A Colonne B
    Date
    01/01/2018 12:00:00 12:00 AM
    01/01/2018 12:15:00 9:00 AM
    01/01/2018 12:30:03 3:00 AM
    01/01/2018 12:45:00 12:00 AM
    01/01/2018 01:00:00 AM
    01/01/2018 01:15:00 AM
    "

    Voilà je ne comprends pas pourquoi la macro me modifie les dates et ne me modifie pas toutes les secondes que je voudrais toutes égales à "00".
    Merci à l'avance à la personne qui saurait m'aider pour régler ce léger problème.
    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    J'ai de la peine à comprendre ce que tu veux comme résultat ?
    Si tu as comme date ceci :
    01/01/2018 00:30:33
    tu souhaites avoir :
    01/01/2018 00:30:00 :33
    Si c'est ça, utilises un format personnalisé comme par exemple celui-ci-dessous :
    jj/mm/aaaa hh:mm":00 :"ss

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Par défaut
    Bonjour,

    Merci, en utilisant ce format, cela fonctionne pour l'affichage mais pas pour la date ou le chiffre à l'intérieur qui contient toujours des secondes différentes de "00" si je ne me trompe pas.
    Je voudrais vraiment obtenir un format avec les secondes égales à "00" pour pouvoir en fait ensuite calculer si j'ai des répétitions ou des manques de date et cela ne fonctionne pas avec cette méthode de format personnalisé.
    Dommage.

  4. #4
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATE(ANNEE(F13);MOIS(F13);JOUR(F13))+HEURE(F13)/24+MINUTE(F13)/(24*60)
    avec la date dans F13
    et sachant qu'un jour comprend 24 H, et 24*60 minutes

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    à tirer vers le bas.
    eric

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Par défaut
    Bonjour,

    Merci Eric et Sogedic, vos 2 solutions fonctionnent correctement.
    Je n'ai toujours pas compris pourquoi ma macro ne fonctionne pas en revanche mais étant donné que vos solutions vont très bien, je classe mon sujet en résolu et vous remercie encore pour votre aide.

    Cordialement.

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

Discussions similaires

  1. (Excel 2016) Problème TCD
    Par Villmith dans le forum Excel
    Réponses: 2
    Dernier message: 28/12/2017, 17h10

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