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 :

Inversion de date: du format français au format US quand copie de Word vers Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut Inversion de date: du format français au format US quand copie de Word vers Excel
    Bonjour à tous ,la macro suivante me permet: à partir d'un formulaire standard Word rempli par des utilisateurs, de recopier automatiquement certains des champs (nom de l'utilisateur, date de remplissage du formulaire)dans un fichier Excel me servant de base de données de suivi.
    Le code est le suivant:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub InsererDemande()
     
    On Error GoTo GestionErreur
     
    'nécessite d'activer la référence Microsoft Word xx.x Object Library
    Dim WordApp As Object
    Dim WordDoc As Object
    Dim Fichier As Variant
    Dim Pos, DerniereLigne As Integer
    Dim NomFichier, chemin, nomFichierSansExtension As String
     
     
    'affichage boite de dialogue pour choisir un document Word
    Fichier = Application.GetOpenFilename("Text Files (*.doc*), *.doc*")
    If Fichier = False Then Exit Sub
     
     
     
    'le document Word est supposé fermé avant le lancement de la macro
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = False 'pour que word reste masqué pendant l'opération
    Set WordDoc = WordApp.Documents.Open(Fichier) 'ouverture du fichier Word
    If WordDoc.ProtectionType = 2 Then
    WordDoc.Unprotect
    End If
     
     
     
    'Identification de la première ligne vide pour y recopier les données
    DerniereLigne = Range("A65535").End(xlUp).Row + 1
     
    Cells(DerniereLigne, 12) = WordDoc.Sections(1).Headers(1).Range.Fields(3).Result.Text
    'Cells(DerniereLigne, 16) = Now
    Cells(DerniereLigne, 2) = WordDoc.Fields(3).Result.Text
    Cells(DerniereLigne, 3) = WordDoc.Fields(2).Result.Text
    Cells(DerniereLigne, 4) = WordDoc.Fields(1).Result.Text 'copie du champ texte Word
    Cells(DerniereLigne, 7) = WordDoc.Fields(5).Result.Text
    Cells(DerniereLigne, 5) = WordDoc.Fields(4).Result.Text
    Cells(DerniereLigne, 13) = WordDoc.Fields(6).Result.Text
     
     
    WordDoc.Close False 'ferme le document Word sans sauvegarde
    WordApp.Quit 'ferme l'application Word
     
    Exit Sub
     
     
    GestionErreur:
        MsgBox "Attention! L'insertion de la demande n'a pas fonctionné", vbOKOnly, "Erreur : " & Err.Description
        Application.ScreenUpdating = True 'pour remettre l'affichage à jour
        Application.Cursor = xlDefault
     
    End Sub
    Ca fonctionne parfaitement sauf sur un point.
    Le formulaire Word d'origine est normalement verrouillé,et comporte des champs texte à remplir.
    Problème: par rapport aux dates, l'utilisateur les saisit au format français (ex. 06/11/2007 pour le 6 novembre 2007) et après recopie elles sont au format US sur mon fichier Excel (!!), Pour mon exemple: 06/11/2007 sur mon fichier Word me donne 11/06/2007 sur mon fichier Excel de destination.
    Vu que je dois faire un suivi des dates sur mon fichier Excel j'aimerais qu'elles se recopient au bon format,comment faire?
    Pour info: sur mon fichier Word le champ d'origine est un champ texte,et le format de ma cellule Excel est un format personnalisé : jj/mm/aaaa (format sous lequel j'aimerais afficher mes dates).
    Merci d'avance,
    M

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

    Tu devrais trouver l'information dans cet article : http://heureuxoli.developpez.com/office/word/champs/
    au chapitre IV-B-1 pour le formatage de la date dans un document Word.

    Starec

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut
    Merci mais je n'ai pas trouvé d'info mer permettant de comprendre pourquoi mon champ texte est inversé lors de la recopie?

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Voir cette discution question déjà posée et résolue.
    A+

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut
    Merci,
    mais je n'ai pas vraiment compris la solution.
    Deuxième point: parfois ce champ texte ne sera pas une date mais du texte, donc comment faire la différence s'il faut faire un traitement particulier?

Discussions similaires

  1. [XL-2010] Convertir des chiffres du format anglais au format français
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/03/2013, 07h53
  2. [AC-2010] convertir la date de format anglais au format français
    Par Nouha04 dans le forum Access
    Réponses: 1
    Dernier message: 26/07/2012, 14h44
  3. Réponses: 2
    Dernier message: 14/03/2010, 17h24
  4. Réponses: 5
    Dernier message: 14/03/2009, 18h41
  5. Formater un nombre du format français au format américain
    Par will8 dans le forum Administration-Migration
    Réponses: 4
    Dernier message: 03/12/2007, 11h57

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