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 :

Problème avec objet Replacement , le remplacement de la valeur ne se fait pas dans le fichier word


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2025
    Messages : 2
    Par défaut Problème avec objet Replacement , le remplacement de la valeur ne se fait pas dans le fichier word
    Bonjour,

    Je viens vers vous car je sèche depuis quelque temps sur une mise à jour qui devrait être simple.
    A partir d'un fichier Excel, j'extrais 2 valeurs dans des cellules distinctes et je veux copier ces valeurs dans un fichier word, en utilisant l'objet Replacement mais la mise à jour ne se fait pas, les textes ne sont pas modifiés dans le document Word.
    >> les valeurs des cellules sont bien copiées, le fichier word est bien ouvert mais le remplacement ne se fait pas, j'en perds mon latin.
    Si quelqu'un a la solution je suis preneur car je ne vois vraiment pas où il y aurait un pb.
    Merci d'avance


    Ci-dessous le code intégral :

    -----
    Sub impression_avis()
    Dim num_session, num_ligne As Integer
    Dim nom, pratique As String
    Dim Wordapp As Object, fichier As Object

    num_session = CStr(InputBox("Numéro de ligne de la session ?", "Numéro session", ""))
    num_ligne = CStr(InputBox("Numéro de la ligne du stagiaire ?", "Numéro ligne Stagiaire", ""))


    'copie données feuille récap
    Sheets("suivi formations").Select
    session = Range("A" & num_session).Value
    sessiondate = Range("C" & num_session).Value
    nom = Range("A" & num_ligne).Value
    dates = Range("C" & num_session).Value
    visio = Mid(dates, 1, 19)
    pratique = Mid(dates, 23, 17)


    File = "D:\Pascal\PSAM\formation\avis\questionnaire_satisfaction_a_chaud_qitao.docx"
    'Word session creation
    Set Wordapp = CreateObject("Word.Application")
    Wordapp.Visible = True
    'open the .docx file
    Set fichier = Wordapp.Documents.Open(File)

    ' Modifier le texte

    With fichier.Content.Find
    .Text = "stagiaire" ' Texte à trouver"
    .Replacement.Text = nom ' Utilisation du texte de remplacement depuis Excel
    .Execute Replace:=wdReplaceAll
    End With

    With fichier.Content.Find
    .Text = "session2" ' Texte à trouver
    .Replacement.Text = pratique ' Utilisation du texte de remplacement depuis Excel
    .Execute Replace:=wdReplaceAll
    End With

    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 512
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 512
    Par défaut
    Tu oublies de sauvegarder le fichier word et fermer Word
    (et on dirait que c'est du VBA pas du VB.NET)
    Est-ce que tes mots sont bien dans le texte du document et pas dans un objet (zone de texte par exemple) dans ton document ?
    Si tu lances la manipulation de remplacement à la main dans Word, est-ce que ça fonctionne?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2025
    Messages : 2
    Par défaut
    Merci umfred pour tes conseils, j'ai ajouté entre temps la sauvegarde.
    Je viens de trouver ouf, c'est la référence à l'object Library de Word qui n'était pas activée, seules celles d'Excel et de Msoffice l'étaient.
    Merci encore pour ta réactivité umfred.
    Belle soirée à toi

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 561
    Par défaut
    Bonsoir,
    Quand on utilise createobject il est possible d'instancier un objet word sans gérer les références.

    En revanche il impératif de créer un ennumerateur pour les constantes {wdReplaceAll}.

    Utiliser createobject est utile si on travail avec un Parc hétérogènes de version Word sinon on n'utilise pas createobject mais new wode.applicaton et on activé les références.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/01/2010, 00h27
  2. Réponses: 7
    Dernier message: 21/01/2010, 22h03
  3. [WD-2007] Recherche remplace de motifs date dans un fichier word
    Par rosemary_antoine dans le forum VBA Word
    Réponses: 1
    Dernier message: 16/06/2009, 01h22
  4. Réponses: 1
    Dernier message: 08/02/2009, 23h18
  5. Réponses: 34
    Dernier message: 08/03/2007, 14h51

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