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

VBA Word Discussion :

Copier une partie d'un texte


Sujet :

VBA Word

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Copier une partie d'un texte
    Bonjour, j'aimerai créer une macro qui sélectionne une partie d'un texte, de tel mot à tel mot, et qui fait ensuite un copié-collé vers une autre page. Cela est-il possible et de quelle manière? Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est tout à fait possible.

    Il faut en premier lieu faire une recherche du premier mot et une fois trouvé, y placer un signet.
    Ensuite faire une recherche sur le second mot et y placer un second signet.

    Il suffit de faire une sélection et utiliser les deux signets pour délimiter la plage de données, la copier et ensuite la coller.

    Peut-être une piste ?

    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
     
    Sub copiePlage()
    Dim MyRange As Range
    Dim Deb As String
    Dim fin As String
     
    Selection.HomeKey unit:=wdStory
     
     
     
    Deb = InputBox("Entrez le mot de début !", "Mot du début de sélection")
     
    With Selection.Find
        .Text = Deb
        .Forward = True
        .ClearFormatting
        .Execute
     
    End With
     
    Selection.Bookmarks.Add "S1"
    Selection.HomeKey unit:=wdStory
    fin = InputBox("Entrez le mot de fin !", "Mot de fin ")
     
    With Selection.Find
        .Text = fin
        .Forward = True
        .ClearFormatting
        .Execute
    End With
    Selection.Bookmarks.Add "S2"
    Debug.Print "bm ok"
     
    Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
    Debug.Print "range select"
    MyRange.Select
    Selection.Copy
    Documents.Add
    Selection.Paste
     
    End Sub

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    c'est laméthode à laquelle j'avais pensé mais je connais pas grand chose pour le moment au langage visual basic et je vous remercie de m'avoir donné le code.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    J'ai reporté le code mais j'obtiens:

    "Erreur de compilation
    Sub ou Function non définie"

    Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu as copié la macro dans quel document ?

    Serait-ce dans le normal.dot ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    J'ai crée une nouvelle macro en normal.dotm et j'ai remplacé son code tout simplement.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Alors, c'est normal que le code coince un peu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
    Fait référence au signet du document et pas de l'activedocument

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MyRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("S1").Range.Start, End:=ActiveDocument.Bookmarks("S2").Range.End)
    Essaie comme ça !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Effectivement, ça fonctionne sans erreur maintenant. Merci beaucoup de m'avoir apporté la solution.

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

Discussions similaires

  1. Copier une partie d'un fichier texte
    Par psgkiki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2010, 12h32
  2. copier une partie d'un fichier texte dans un autre
    Par Valarauko dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2007, 21h17
  3. [C#] Comment copier une partie d'un texte ?
    Par zidenne dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2006, 10h37
  4. [c#]copier une partie de texte
    Par zidenne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/09/2006, 10h31
  5. comment récuperer une partie selectionné de texte?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/09/2005, 12h22

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