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 :

Code vba pour remplir un signet word [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Par défaut Code vba pour remplir un signet word
    Bonjour,
    Je débute avec vba. J'aimerais remplir des signets qui sont dans un document word et enregistrer le document sous format pdf. S'il vous plaît aider moi. Voici le code
    Nom : Capture.PNG
Affichages : 4328
Taille : 92,8 Ko

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Deux remarque sur la forme de ta demande :
    Si c'est une question sur Word, tu aurais du la placer dans la rubrique VBA Word.
    Il est peut pratique d'avoir un code sous forme d'image (on est obligé de le retaper). Tu devrais plutôt le copier sous forme de texte, de préférence avec des balises CODE (l'icone # de l'éditeur du forum).

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Par défaut
    [QUOTE=sn1girlpower;10272918]Bonjour,
    Je débute avec vba. J'aimerais remplir des signets qui sont dans un document word et enregistrer le document sous format pdf. S'il vous plaît aider moi. Voici le code
    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
     
    Sub Export_Word()
     
    Application.DisplayAlerts = False
     
    Dim Doc_origine As String, Doc_save As String
    Dim WordApp As Object
    Dim WordDoc As Object
     
      Doc_origine = ActiveWorkbook.Path & "\Contrat_sous_traitant.docx"
    Date_F = Format(Date, "ddmmYYYY_")
     
     
     
        'Doc_origine = ActiveWorkbook.Path & "\toto.docx"
       ' Doc_save = ActiveWorkbook.Path & "\toto_dossier" & Sheets("Feuil1").Range("A1").Text & ".docx"
     
        Set WordApp = CreateObject("word.application")
        Set WordDoc = WordApp.Documents.Open(Doc_origine, ReadOnly:=False)
       ' WordApp.Visible = False
        WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1)
        WordDoc.Bookmarks("toto").Range.Text = Cells(6, 2)
     
     
        WordApp.Visible = True
        'adaptez le nom de la feuille
    With Worksheets("Feuil1")
    Doc_name = "\" & "toto_" & Date_F & .Range("A6")
    Doc_rep = ActiveWorkbook.Path & "\toto"
    Doc_save = Doc_rep & Doc_name
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Doc_name, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With
        'objWordApp.ActiveDocument.SaveAs2 Doc_save
       ' WordDoc.Application.ActiveDocument.SaveAs Doc_save
        'WordApp.Application.Quit
        'WordDoc.PrintOut
        WordDoc.Close True
    End Sub

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je n'ai pas analyser ton code en détail mais j'ai quand même remarqué quelques trucs qui piquent les yeux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1)
        WordDoc.Bookmarks("toto").Range.Text = Cells(6, 2)
    Là, tu remplaces le contenu du signet toto par le contenu de la cellule A6, puis, juste après, tu remplaces ce même signet par le contenu de B6.
    Le second va forcément écraser le premier rendant la première ligne inutile.

    Si tu veux mettre les deux valeurs dans le signet, il faudrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        WordDoc.Bookmarks("toto").Range.Text = Cells(6, 1) & Cells(6, 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Doc_name, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Le "." qui débute cette instruction fait référence à With Worksheets("Feuil1"), ce qui signifie que c'est ton tableau Excel que tu essayes d'exporter en PDF et non le document Word comme tu le décris dans ton explication.

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Par défaut
    Merci pour votre réponse j'ai corrigé le code et j'ai erreur 5941
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WordDoc.Bookmarks("Num").Range.Text = Cells(6, 1)
    Je précise le signet existe
    Merci de m'aider

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par sn1girlpower Voir le message
    Merci pour votre réponse j'ai corrigé le code et j'ai erreur 5941
    Indiquer le message d'erreur serait plus parlant.

    Citation Envoyé par sn1girlpower Voir le message
    Je précise le signet existe
    Vérifie-le en mettant juste avant cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print  WordDoc.Bookmarks("Num").Name
    Et en regardant si quelque chose apparait dans la fenêtre d'exécution.

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ou bien, dans ton document Word, tu fais F5 et tu choisis le signet. Si tu l'atteins, il existe. Sinon…

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

Discussions similaires

  1. [AC-2013] Soucis code vba pour ouvrir doc word grace a access
    Par vinkey_33 dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/01/2018, 12h08
  2. [AC-2010] Erreur sur Code VBA pour enregistrement d'un document publiposté word
    Par AudREN dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/09/2014, 13h22
  3. [AC-2003] code VBA pour publipostage vers word
    Par Melchiorjl dans le forum Access
    Réponses: 0
    Dernier message: 09/08/2012, 15h14
  4. [VBA-A] Code vba pour inclure un formulaire Acces
    Par MadSquirrel dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2006, 18h19
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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