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 :

Depuis excel trouver un mot dans un document Word et supprimer la ligne ou est le mot


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut Depuis excel trouver un mot dans un document Word et supprimer la ligne ou est le mot
    Bonsoir à tous,

    J'ai besoin de vos lumières car je n'y arrive pas !

    J'ouvre depuis Excel un fichier word et je recherche des <BALISE1......40>avec findtext et replacewith, ça marche parfaitement.

    Dans ce document word j'ai au maximum 4 fois un mot qui peut se répeter et je dois supprimer la ligne ou il est.
    J'ai donc écris :

    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
     
       Dim txt As String
        Dim traitementTexte As Word.Application
        Set traitementTexte = New Word.Application
     
        traitementTexte.Visible = True
     
     
        Dim leDoc As Document
        Set leDoc = traitementTexte.Documents.Open(ActiveWorkbook.Path & "/test.doc")
     
    For ii = 1 To 4
     
     
    With leDoc
    leDoc.Content.Find.Execute findtext:="scoubi"
    leDoc.Selection.Expand unit:=wdParagraph
    If ((leDoc.Selection.Text) = "scoubi") Then
          leDoc.Selection.range.Delete
    Else
    End If
     
    End With
    next ii
    mais ça ne marche pas ! il quitte la macro sans exécuter le code en entier

    Merci par avance à tous pour vos aidses

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    J'ai essayé d'être plus simple mais sans succès hélas !

    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
     For ii = 1 To 4
       Dim txt As String
        Dim traitementTexte As Word.Application
        Set traitementTexte = New Word.Application
     
        traitementTexte.Visible = True
     
     
        Dim leDoc As Document
        Set leDoc = traitementTexte.Documents.Open(ActiveWorkbook.Path & "/test.doc")
    With leDoc
    leDoc.Content.Find.Execute findtext:="scoubi"
     
    If findtext = "scoubi" Then
         leDoc.findtext.Select
          leDoc.Selection.Delete
    Else
    End If
     
    End With
     
     
    Next ii

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    En pas à pas findtext reste invariablement vide alors que le mot scoubi existe !

    si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    leDoc.Content.Find.Execute findtext:="scoubi", ReplaceWith:="trouvé", Replace:=wdReplaceAll
    Là il me remplace bien les 4 scoubi par trouvé !

  4. #4
    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
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu as un énorme problème en partant. Il n'y a rien dans VBA-Word qui permette de sélectionner une ligne à coup sûr et avec constance. Dans Word la ligne est extrêmement variable. Cela dépend, du pilote d'imprimante utilisé, de la taille des caractères, de la police de caractères, des mises en formes, de la justification etc... Il suffit juste de changer d'imprimante, de version du même pilote d'imprimante, ou de remplacer ton papier "A4" par un papier "Lettre" pour tout foutre en l'air

    Pour t'en sortir tu as deux solutions:

    Un paragraphe d'une seule ligne ou une phrase d'une seule ligne.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonjour et merci pour la réponse,

    c'est bien Un paragraphe d'une seule ligne ou une phrase d'une seule ligne, comment puis-je m'en sortir ?
    je sèche !

    Merci par avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2015, 13h04
  2. [XL-2010] Recherche multiple d’occurrences dans des documents Word depuis un fichier Excel
    Par Meynur dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/04/2015, 16h16
  3. [WD-2010] Compiler les mots d'un document Word dans un fichier Excel
    Par clementmarcotte dans le forum Contribuez
    Réponses: 2
    Dernier message: 13/09/2013, 01h29
  4. Réponses: 2
    Dernier message: 14/07/2013, 23h46
  5. [XL-2003] Effacer des signets dans un document word depuis excel
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/03/2010, 21h20

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