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 :

Remplacement d'un texte d'une cellule Excel par un mot dans Word


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Remplacement d'un texte d'une cellule Excel par un mot dans Word
    Bonjour à tous,

    J'essaye de remplacer dans un fichier Word, à chaque fois qu'il y a "XXX", par une cellule excel que j'ai nommé.

    Malgré mes recherches, mon code devrait être bon mais il ne remplace qu'une fois "XXX" dans le fichier Word et les autres "XXX", il les laisse tel quel.


    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
    54
    55
    56
    57
    Sub Offre_type_test()
     
     
    Dim AppWord As Object
    Dim DocWord As Object
     
    Dim Nom_Fic_A_Enregistrer As String, Nom_Fenetre As String
    Dim ExtGamme As String
     
     
    Set AppWord = CreateObject("Word.Application")
    AppWord.Visible = True
    Set DocWord = AppWord.Documents.Open("C:\Users\geo\Desktop\V2.4\Offre Type.docx")
     
    AppWord.ActiveWindow.View.ReadingLayout = False
     
     
        ' *******************************************************************************************
        ' NOM DE LA SOCIETE
        ' *******************************************************************************************
        ' Sélection des données de la fiche signalétique
     
     
        Application.Goto Reference:="Nom_Client"
        Selection.Copy
     
     
        AppWord.Selection.HomeKey  'Unit:=(wdStory)
        AppWord.Selection.Find.ClearFormatting
        AppWord.Selection.Find.Replacement.ClearFormatting
     
     
     
     
        With AppWord.Selection.Find
            .Text = "XXX"
            .Replacement.Text = ActiveCell.Value
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
     
     
     
        End With
     
     
        AppWord.Selection.Find.Execute Replace:=wdReplaceAll
     
     
        AppWord.Selection.PasteSpecial Link:=False
     
    End Sub


    PS : je suis obligé de mettre Unit:=(wdStory) en commentaire, sinon j'ai un message d'erreur (paramètre incorrect)

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Essaye ça :
    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
    Sub Offre_type_test()
    Dim DocWord As  Word.Document
     
    Set DocWord = GetObject("C:\Users\geo\Desktop\V2.4\Offre Type.docx")
    DocWord.Application.Visible = True
    DocWord.Application.ActiveWindow.View.ReadingLayout = False
     
    With DocWord.Content.Find
            .Text = "XXX"
            .Replacement.Text = Range("Nom_Client")
            .MatchCase = False
            .MatchWholeWord = False
            .Execute Replace:=wdReplaceAll
    End With
     
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour ton aide mais la macro que tu m'as envoyé s’exécute mais ne change rien au fichier Word

Discussions similaires

  1. [PowerShell] Récupérer la valeur d'une cellule Excel et la stocker dans une variable
    Par TheDjazairi.exe dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 07/05/2018, 13h50
  2. [XL-2010] Comment coller le texte d'une cellule excel vers un champs internet explorer
    Par nirvana4483 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/08/2017, 15h00
  3. Faire clignoter les textes d'une cellule Excel avec Perl
    Par lauvydream dans le forum Langage
    Réponses: 4
    Dernier message: 11/06/2014, 14h06
  4. Simple copie du texte d'une cellule excel dans le titre d'un graphique chart
    Par pinto_armindo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2007, 10h59
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

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