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 :

conversion en date de données importées dans excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Par défaut conversion en date de données importées dans excel
    Bonjour aux membres du forum.
    Je soumets un petit pb (casse tête pour moi !) de conversion en format date de données externes dans un tableau excel.
    Les données sont déjà fournies sous forme de tableau excel comprenant des dates (format jj mmmm yyyy hh:mm:ss ) reconnues par excel, des valeurs monétaires, des libellés, des chiffres.
    Tout serait ok si le soft qui génère ces tableaux n'avait pas la fâcheuse habitude de faire suivre les libellés de certains mois par un "." , ex:
    "mai" est transmis par "mai", ce que excel comprend très bien
    "avril" est transmis par "avr." ce que excel ne comprends pas.
    J'ai essayé plusieurs méthodes par macro , notamment avec la fonction recherch/remplace . A chaque fois le point est bien retiré , mais le contenu de la cellule reste en texte qu'excel ne convertit pas (la fonction format ne donne rien ni le formatage direct dans la cellule);
    Par contre si je me place dans la cellule et que je supprime le "." (del), à la validation (touche enter) excel converti automatiquement le contenu dans le format date attendu de la cellule.
    J'ai essayé de traduire çà avec l’enregistreur de macro, mais cà ne donne rien.
    Alors , si qq'un aune idée (de génie bien sûr !), je suis preneur d'une solution vba, car je dois convertir une colonne complète avant utilisation pour des statistiques.

  2. #2
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 287
    Par défaut
    Bonjour

    supprimer le . puis menu données, convertir, choisir date

    sinon pour traiter des données provenant de sources externes, Power Query et plus adapté que VBA (menu données, récupérer et transformer)

    Stéphane

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par Raccourcix Voir le message
    Bonjour

    supprimer le . puis menu données, convertir, choisir date

    sinon pour traiter des données provenant de sources externes, Power Query et plus adapté que VBA (menu données, récupérer et transformer)

    Stéphane
    merci Raccourcix!
    j'ai essayé les 2 méthodes, la 1ère me donne une err sur la date après suppr du point, la 2è laisse les dates dans le format origine cad avec le point .
    Là je sèche .....

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    quelle version d'Excel tu as ?
    Si tu indiques en format de cellule ton format de date, en recherchant/remplaçant le . par rien, chez moi (excel 2016) le mois est convertit directement (avr. => avril)

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par umfred Voir le message
    quelle version d'Excel tu as ?
    Si tu indiques en format de cellule ton format de date, en recherchant/remplaçant le . par rien, chez moi (excel 2016) le mois est convertit directement (avr. => avril)
    ok pour moi aussi , mais le format ne s'applique pas . J'essaie d'envoyer un exemple pour comprendre la situation, j'utilise une boucle pour parcourir la colonne :
    1ère méthode -> résultat colonne 1
    utilisation du code : Range("A" & ligne) = Replace(Range("A" & ligne), ".", "")
    2è méthode -> résultat colonne 2
    utilisation du code (à la suite de la ligne précédente): Range("A" & ligne) = Format(Range("A" & ligne), "dd/mm/yyyy hh:mm")
    J'obtiens bien le format date voulu dans toute la colonne, mais pb pour certaines dates (??) la conversion fait une inversion entre le mois et le jour (chiffres en rouge).
    J'ai pas réussi à trouver le bug ! Ah j'ai office2021 professionnel
    Classeur1.xlsx

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, j'ai testé comme ceci sur ton classeur et ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ReplaceDots()
        Dim cell As Range
        For Each cell In Selection
            cell.Value = Replace(cell.Value, ". ", "/")
            cell.Value = Format(cell.Value, "mm/dd/yyyy hh:mm:ss")
        Next cell
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Par défaut
    Citation Envoyé par Franc Voir le message
    Salut, j'ai testé comme ceci sur ton classeur et ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ReplaceDots()
        Dim cell As Range
        For Each cell In Selection
            cell.Value = Replace(cell.Value, ". ", "/")
            cell.Value = Format(cell.Value, "mm/dd/yyyy hh:mm:ss")
        Next cell
    End Sub
    AAhh !! je savais bien qu'à part moi, ce forum était plein de génies !!! merci Franc, çà marche nickel , j'y ai passé plusieurs heures alors que c'était simple ...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/12/2017, 13h04
  2. [XL-2003] Import de données SQL dans excel
    Par lulu3111 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2009, 10h14
  3. Import des données oracle dans excel
    Par irouni dans le forum Excel
    Réponses: 7
    Dernier message: 10/12/2007, 15h47
  4. Insertion date max à l'import d'excel dans access
    Par eddyG dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/10/2007, 12h08
  5. Importation données Access dans Excel
    Par pascalh dans le forum Excel
    Réponses: 1
    Dernier message: 25/09/2007, 16h54

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