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 :

Publipostage via Macro VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    gestionnaire RH
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : gestionnaire RH
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Publipostage via Macro VBA
    Bonjour,
    je suis novice en programmation mais ca me passionne. après une après midi entière de recherche je viens vous poser mon probleme double probleme.
    ce que voudrai avoir c'est :

    1 - suite au publipostage effectuer a partir d'un tableau excel et mis dans un nouveau document word, pouvoir retourner dans excel en ayant toujours le document word ouvert
    et 2 - dans mon publipostage j'ai un champs date qui se met obstinément en format MM/DD/YYYY je le voudrai bien sur en DD/MM/YYYY

    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
    ‘publipostage 
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library" 
    Dim docWord As Word.Document 
    Dim appWord As Word.Application 
    Dim NomBase As String 
     
    NomBase = Chemin & NomFichier 
     
    Application.ScreenUpdating = False 
    Set appWord = New Word.Application 
    appWord.Visible = True 
     
    'Ouverture du document principal Word 
    Set docWord = appWord.Documents.Open("S:\Documents\projet feuille carton\publipostage.docx") 
     
    'fonctionnalité de publipostage pour le document spécifié 
    With docWord.MailMerge 
     
    'Ouvre la base de données 
    .OpenDataSource Name:=NomBase, _ 
    Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _ 
    "DBQ=" & NomBase & "; ReadOnly=True;", _ 
    SQLStatement:="SELECT * FROM [Feuil1$]" 
     
    'Spécifie la fusion vers un nouveau document 
    .Destination = wdSendToNewDocument 
    .SuppressBlankLines = True 
     
    'Prend en compte l'ensemble des enregistrements 
    With .DataSource 
    .FirstRecord = wdDefaultFirstRecord 
    .LastRecord = wdDefaultLastRecord 
    End With 
     
    'Exécute l'opération de publipostage 
    .Execute Pause:=False 
    End With 
     
    Application.ScreenUpdating = True 
     
    'fermer la base du publipostage
    docWord.Close False
    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 765
    Points : 28 623
    Points
    28 623
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu as probablement formaté les dates dans Excel mais pas dans le document Word or Word ne tient compte que de son propre formatage.

    Faire Alt + F9 dans ton document (C'est la commande qui permet de visualiser les codes Champs du publipostage).
    Tu vas alors visualiser ce code {MERGEFIELD "Le_Nom_du_Champ"}
    Ajouter ceci derrière le guillemet de départ : \@ "dd/MM/yy" (Attention le M en majuscule)
    Tu auras donc ceci { MERGEFIELD "Date" \@ "dd/MM/yy" }
    Attention de bien respecter l'espace avant \ et après @
    La date sera ainsi bien formatée
    Refaire Alt F9 pour enlever la visualisation des codes.

    Pour obtenir vendredi 22 février 2019, c'est { MERGEFIELD "Date" \@ "dddd d MMMM yyyy" }
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Candidat au Club
    Femme Profil pro
    gestionnaire RH
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : gestionnaire RH
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    merci pour ta réponse je regarderai ca au boulot lundi

Discussions similaires

  1. mise en forme TCD via macro vba
    Par Vinzz974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2012, 15h48
  2. [XL-2007] Gestion de document Word via macro VBA excel
    Par guiMM dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2011, 15h30
  3. Réponses: 2
    Dernier message: 07/09/2010, 12h39
  4. [XL-2003] Fermeture de Processus Word via Macro VBA Excel
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2009, 19h46
  5. Requete SQL via macro vba changeant le format de la cellule
    Par laville dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/08/2007, 10h26

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