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 :

Macro inversion de date colone Donnés=>convertir=>largeur fixe=>Date=amj


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut Macro inversion de date colone Donnés=>convertir=>largeur fixe=>Date=amj
    Bonjour,

    Je cherche désespérément à faire une macro VBA pour remettre dans le bonne ordre et avec des slash des date d'une colone dans un tableau excel .

    En gros , j'ai pleins de date dans une colone sous ce format : 20160101 et j'aimerai que ça soit affiché 01/01/2016

    j'ai trouvé la fonction manuelle : Donnés=>convertir=>largeur fixe=>Date=amj mais j'aimerai l'automatisé avec d 'autre fonction de mise en page .

    J'ai essayé aussi le changement de format de la cellule en vba mais il prend 20160101 pour un chiffre standard donc ca ne fonctionne pas .

    Mile merci par avance pour votre aide ... j'ai passé des heures à chercher

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution possible avec une fonction basée sur DateSerial. La fonction est à mettre dans un module standard.

    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
    Function ReformaterDateV1(ByVal DateAMJ As Variant) As Date
     
             Application.Volatile
             If Len(DateAMJ) = 8 Then
                ReformaterDateV1 = DateSerial(Mid(DateAMJ, 1, 4), Mid(DateAMJ, 5, 2), Mid(DateAMJ, 7, 2))
             End If
     
    End Function
     
    Function ReformaterDateV2(ByVal DateAMJ As Variant) As Variant
     
             Application.Volatile
             If Len(DateAMJ) = 8 Then
                ReformaterDateV2 = DateSerial(Mid(DateAMJ, 1, 4), Mid(DateAMJ, 5, 2), Mid(DateAMJ, 7, 2))
             Else
                ReformaterDateV2 = ""
             End If
     
    End Function

    Pièce jointe 196277

    Cordialement.

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Une autre fonction plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Text2Date(value As String) As Date
      Text2Date = CDate(Format(value, "0000/00/00"))
    End Function
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour, bonjour !

    Citation Envoyé par goul2015 Voir le message
    j'ai trouvé la fonction manuelle : Donnés=>convertir=>largeur fixe=>Date=amj mais j'aimerai l'automatisé avec d 'autre fonction de mise en page .
    Elle existe aussi en VBA, suffit d'activer l'Enregistreur de macros : une base de code est livrée sur un plateau ‼
    (TextToColumns …)

    ______________________________________________________________________________________________________
    Je suis Paris, …

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour et bonne année!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Text2Date = Format("20160101" , "0000-00-00")

Discussions similaires

  1. Convertir fichier largeur fixe via excel
    Par sebys dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 01/02/2008, 10h01
  2. Macro permettant le tri de données.
    Par Mlezen dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/10/2007, 20h22
  3. convertir chaine caractere en une date
    Par semaj_james dans le forum C
    Réponses: 2
    Dernier message: 22/12/2006, 21h17
  4. [VBA xl] Récupérer et convertir le mois d'une date
    Par snip_ernet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2006, 18h12
  5. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26

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