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

VB.NET Discussion :

Lien champs entre Word et VB2008


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut Lien champs entre Word et VB2008
    Bonjour a tous, ci dessous un bout de code "Qui fonctionne" et oui.
    Seulement je souhaiterais pourvoir nommer les champs et les réutilisers a différents endroit dans le document word, car dans ce cas je les parcoures et les remplis au fur et a mesure de l'incrémentation de i.
    Je voudrais donc pourvoir avoir un champs qui s'appelle <<MonNom>> dans word et le remplacer par la valeur provenant du code
    Si quelqu'un a un bout de code ( exemple) se serait le pied

    Merci bien

    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
     
    Dim oApp As Word.Application
                Dim oDoc As Word.Document
                Dim oField As Word.Field
                Dim i As Integer
                Dim Field1 ,Field2,Field3,Field4, Field5 , Field6 As String
     
                Field1 = "Champs1"
                Field2 = "Champs2" 
                Field3 = "Champs3"
                Field4 = "Champs4"
                Field5 = "Champs5"
                Field6 = "Champs6"
     
                Try
                      oApp = New Word.Application()
                      oDoc = oApp.Documents.Open(StringTemplate & "MonDoc.doc", , False)
     
                      i = 0
                      For Each oField In oDoc.Fields
                            i = i + 1
     
                            Select Case i
     
                                  Case 1
                                        oDoc.Fields.Item(i).Result.Text = Field1
                                  Case 2
                                        oDoc.Fields.Item(i).Result.Text = Field2
                                  Case 3
                                        oDoc.Fields.Item(i).Result.Text = Field3
                                  Case 4
                                        oDoc.Fields.Item(i).Result.Text = Field4
                                  Case 5
                                        oDoc.Fields.Item(i).Result.Text = Field5
                                  Case 6
                                        oDoc.Fields.Item(i).Result.Text = Field6
     
                            End Select
     
                      Next
     
                      oApp.Visible = True
                      oDoc.Close()
                      oApp.Quit()
     
                Catch ex As System.Exception
     
                      MsgBox(ex.ToString)
     
                End Try

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,
    regarde cette discussion : http://www.developpez.net/forums/d90...document-word/
    Elle contient deux façon de faire ce que tu veux.
    Bien à toi.

  3. #3
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Et oui, effectivement cela se raproche tres fort de ce que je cherche, merci bien a toi
    Je vais faire qq essais sur la base de ce code
    Dommage pour la lisibilité des noms de signet , mais bon
    Je reviens avec les commentaires cet après midi

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Par défaut
    J'avais trouvé une méthode sur ce forum plutot simple!
    je te montre un exemple de mon 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
    '=======================================================================================================
                '=============================== CREATION FICHE BON DE TRANSPORT =======================================
     
                Dim MWordApp As Microsoft.Office.Interop.Word.Application
                Dim MWordDoc As Microsoft.Office.Interop.Word.Document
     
                'ouvre une session Word
                MWordApp = CreateObject("word.application")
                MWordApp.Visible = True
                'ouvre le document Word
                MWordDoc = MWordApp.Documents.Open("S:\Opération\LOGISTIQUE&LABORATOIRE\ACHAT\Inventory Control\Transporteurs\Coursiers\doc_bon_transporteur\Bon_Transporteur.doc", ReadOnly:=True)
     
                'Complète le signet nommé Contact_Expéditeur par du texte (ex:priseenchargeuser+prenompriseenchareuser)
                MWordDoc.Bookmarks("Contact_Expéditeur").Range.Text = priseenchargeuser + " " + prenompriseenchareuser
                MWordDoc.Bookmarks("Tel_Expediteur").Range.Text = telpriseenchargeuser
                MWordDoc.Bookmarks("Date").Range.Text = DateAndTime.Now.ToString()
    il faut également ne pas oublier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.Office.Interop.Word
    Pour le doc word, j'ai un doc avec tous les signets et mise en page, il va se pré-remplir et lorque tu veux l'enregistrer, tu sera obliger de l'enregistrer sous, car il est en lecture seul ^^

    Voila en espérant que cela t'aide

  5. #5
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Oui, je vois . Cela ressemble bien a un des deux proposé par Sankasssss dans son lien
    Je le teste et cela fonctionne bien
    Grand merci a tout les deux


  6. #6
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    petite question avant de le clôturer

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     oDoc.Bookmarks("VB_Client").Range.Font.Size = 24
    n'a aucun effet cela est il normal ou il me manque qq chose

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par leeloo95 Voir le message
    je te montre un exemple de mon 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
    '=======================================================================================================
                '=============================== CREATION FICHE BON DE TRANSPORT =======================================
     
                Dim MWordApp As Microsoft.Office.Interop.Word.Application
                Dim MWordDoc As Microsoft.Office.Interop.Word.Document
     
                'ouvre une session Word
                MWordApp = CreateObject("word.application")
                MWordApp.Visible = True
                'ouvre le document Word
                MWordDoc = MWordApp.Documents.Open("S:\Opération\LOGISTIQUE&LABORATOIRE\ACHAT\Inventory Control\Transporteurs\Coursiers\doc_bon_transporteur\Bon_Transporteur.doc", ReadOnly:=True)
     
                'Complète le signet nommé Contact_Expéditeur par du texte (ex:priseenchargeuser+prenompriseenchareuser)
                MWordDoc.Bookmarks("Contact_Expéditeur").Range.Text = priseenchargeuser + " " + prenompriseenchareuser
                MWordDoc.Bookmarks("Tel_Expediteur").Range.Text = telpriseenchargeuser
                MWordDoc.Bookmarks("Date").Range.Text = DateAndTime.Now.ToString()
    il faut également ne pas oublier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.Office.Interop.Word
    Cela ne sert à rien de faire un imports si tu utilise tout l'espace de nom dans le code...

    Un imports sert à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Dim MWordApp As Application
                Dim MWordDoc As Document
    et pour ma part j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.Office.Interop
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Dim MWordApp As Word.Application
                Dim MWordDoc As Word.Document

  8. #8
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Ce qui s'appel être complet

    Super

    Merci

  9. #9
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par thierry007 Voir le message
    Dommage pour la lisibilité des noms de signet , mais bon

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

Discussions similaires

  1. Lien Hypertexte entre Word et Excel
    Par Toewing dans le forum Excel
    Réponses: 1
    Dernier message: 17/02/2014, 07h30
  2. [WD-2003] Champ dynamique dans lien hypertexte (mailto) Word 2003
    Par Invité dans le forum Word
    Réponses: 10
    Dernier message: 29/04/2009, 14h05
  3. Lien Hypertexte /macro entre Word et excel
    Par massimo30 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 11/06/2008, 21h10
  4. Lien hypertexte entre word et excel
    Par PoichOU dans le forum Word
    Réponses: 4
    Dernier message: 25/04/2008, 11h33
  5. Liens entre word et excel
    Par polodu84 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 24/04/2007, 11h36

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