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 :

Transformer des dates AAMMJJ format texte en JJ/MM/AA format date [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut Transformer des dates AAMMJJ format texte en JJ/MM/AA format date
    Bonjour,

    Après plusieurs heures de recherches infructueuses, je viens solliciter votre aide.

    Je crée une macro qui met en forme automatiquement le document excel issu d'une extraction de SAP, afin de gagner du temps à chaque fois que nous faisons cette extract.

    Dans ma macro, je souhaite à un moment calculer la durée en jours entre deux dates. Mon problème, c'est que l'extraction d'SAP me remplit les deux colonnes de dates sous la forme AAAAMMJJ et les cellules sont au format texte standard. Je voudrais transformer ces deux colonnes sous la forme JJ/MM/AAAA en format date afin de pouvoir utiliser ensuite la formule JOUR360 dans une autre colonne pour calculer la durée. J'ai réussi à transformer la date dans mon format avec une formule (=CNUM(DROITE(A2;2)&"/"&STXT(A2;5;2)&"/"&GAUCHE(A2;4))) mais excel le reconnaît comme du texte donc je pense que ce n'est pas la solution.

    Avez-vous des pistes à me proposer ?

    Merci d'avance !

    Paul

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format (20160121,"0000/00/00")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cdate(format (20160121,"0000-00-00"))
    Dernière modification par Invité ; 22/01/2016 à 15h38.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut
    Bonjour,

    Merci de ta réponse, mais vba me retourne une erreur

    Voilà la partie de mon code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 2 To 5000
    
    If wk1.Worksheets("extract").Range("A" & i).Value <> "" Then
    
    z = wk1.Worksheets("extract").Range("A" & i).Value
    zz = wk1.Worksheets("extract").Range("B" & i).Value
    
    wk1.Worksheets("extract").Range("A" & i) = CDate(Format(z, "0000-00-00"))
    wk1.Worksheets("extract").Range("B" & i) = CDate(Format(zz, "0000-00-00"))
    
    End If
    
    Next i
    "Erreur 13 : Incompatibilité de type" sur la ligne en gras

    Je souhaite récupérer les dates des colonnes A et B de la forme AAAAMMJJ et les mettre en JJ/MM/AAAA

    Merci de ton aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    quel valeur ce trouve dans z?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if val(z)>0 then wk1.Worksheets("extract").Range("A" & i) = CDate(Format(z, "0000-00-00"))

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut
    Re,

    Dans z se trouve la date issue de l'extract, sous la forme "20160125" pour le 25/01/2015

    J'ai trouvé l'origine de l'erreur, certaines lignes de l'extract avaient un 0 ce qui faisait planter la fonction CDate

    Du coup ton code marche parfaitement, merci beaucoup de ton aide

    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
    17
    18
    19
    For i = 2 To 5000
     
    If wk1.Worksheets("extract").Range("A" & i).Value <> "" Then
     
    z = wk1.Worksheets("extract").Range("A" & i).Value
    zz = wk1.Worksheets("extract").Range("B" & i).Value
     
    If z <> "0" Then
     
    wk1.Worksheets("extract").Range("A" & i) = CDate(Format(z, "0000-00-00"))
     
    End If
     
    wk1.Worksheets("extract").Range("B" & i) = CDate(Format(zz, "0000-00-00"))
     
     
    End If
     
    Next i

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

Discussions similaires

  1. Probleme transformation en numérique des variables au format texte
    Par jejeaunet75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/09/2015, 09h18
  2. CSV Format Texte transforme en format numerique
    Par Contrec dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/03/2011, 08h56
  3. format texte vers date
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 18/11/2007, 16h59
  4. transformer champ texte d'une table vers champ date
    Par mussara dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2007, 22h17
  5. Tri de dates au format texte
    Par stem dans le forum Outils
    Réponses: 9
    Dernier message: 09/08/2006, 17h47

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