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 :

Macro Word Surlignage


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Macro Word Surlignage
    bonjour
    je souhaite créer une macro word pour surligner automatiquement toutes les occurences des 3 mots suivants dans mes compte rendus médicaux : droite / droit / gauche
    j'ai récupéré la macro suivante mais j'ai 3 problèmes non résolus :
    1) je souhaite qu'elle s'exécute sans demander le mot à surligner
    2) je souhaite y inclure plusieurs mots à surligner et non pas une macro par mot
    3) si possible qu'elle s'exécute automatiquement au démarrage de word et qu'elle soit active en surlignant les mots en direct lors de la frappe dans le texte
    pensez vous que cela est réalisable?
    merci+++

    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
    Sub surligner()
    Dim message, title, defaultValue As String
    Dim myValue As String
     
    message = "Tapez le mot à surligner"
     
    title = "Surlignage Express"
    defaultValue = "mot"
     
     
    myValue = InputBox(message, title, defaultValue)
     
    If myValue <> "" Then
    '
    ' Pour surligner le texte renseigne
    '
    '
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Highlight = True
        With Selection.Find
            .Text = myValue
            .Replacement.Text = myValue
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End If
     
     
    End Sub

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Lors de la frappe, non, pas possible.

    Petite chose, dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim message, title, defaultValue As String
    on a deux variants et un string.
    En VBA, toutes les variables doivent être typées séparément.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim message As String, title As String, defaultValue As string
    Tu dois éviter d'utiliser des mots qui pourraient être réservés comme defaultvalue.


    On peut lancer une recherche sur plusieurs mots différents, mais il faut faire une boucle.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut boucle
    ok merci
    pourrais tu stp me dire comment faire une boucle pour surligner 3 mots differents (par exemple le mot "droit" "droite" et "gauche"
    par ailleurs, est il possible de lancer la macro directement sans qu'il me demande les mots à surligner?

    merci

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    c'est cette ligne qui te demande les mots à surligner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myValue = InputBox(message, title, defaultValue)
    Il suffit d'injecter tes valeurs dans la variable, mais comme tu as trois mots, il faudra faire un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myValue(2) As String
    Voilà un exemple de boucle sur un tableau

    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
    Sub BoucleSurTabeau()
    Dim mySt(2) As String
    Dim intI As Byte
     
     
    mySt(0) = "droit"
    mySt(1) = "droite"
    mySt(2) = "gauche"
     
    For intI = 0 To 2
    Debug.Print mySt(intI)
    Next intI
     
     
    End Sub
    Les boucles : http://heureuxoli.developpez.com/off...l/?page=page12

    On peut alors lancer la recherche dans cette boucle et faire une boucle sur la recherche.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut ça ne marche pas encore.....
    re bonjour
    j'ai essayé d'inclure vos lignes dans ma macro mais ça ne passe pas....
    désolé mais je suis novice dans ce domaine
    merci++
    je vous joints la macro réécrite :

    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
    Sub surligner()
    Dim message, title, defaultValue As String
    Dim myValue As String
     
    message = "Tapez le mot à surligner"
     
    title = "Surlignage Express"
    defaultValue = "mot"
     
     
    myValue = InputBox(message, title, defaultValue)
     
    If myValue <> "" Then
    '
    ' Pour surligner le texte renseigne
    '
    '
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Highlight = True
        With Selection.Find
            .Text = myValue
            .Replacement.Text = myValue
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End If
     
    End Sub
     
    Dim MyValue(2) As String
    Sub BoucleSurTableau()
    Dim mySt(2) As String
    Dim intI As Byte
     
    mySt(0) = "droit"
    mySt(1) = "gauche"
    mySt(2) = "droite"
     
    For intI = 0 To 2
    Debug.Print mySt(intI)
    Next intI

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Se mettre à écrire du code sans s'intéresser un peu au language ne conduit qu'à l'échec.

    Une macro est en général toujours construite de la même manière.
    Ce n'est pas une obligation, mais plutôt une convention.

    En début et en fin, on retrouve toujours la même chose.

    Au début, on retrouve ce code :
    ou
    et elle se termine toujours par
    ou
    http://heureuxoli.developpez.com/office/word/vba-all/

    Dans la première partie on déclare les variables.
    On déclare en général les variables avec Dim pour Dimension.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim intI as Integer
    Dim stMonTexte As String
    La partie centrale est utilisée pour le code
    c'est là que l'on retrouve les boucles, les conditions, ...

    La dernière est utilisée pour libérer les objets.


    Jette un oeil au tuto http://heureuxoli.developpez.com/office/word/vba-all/

Discussions similaires

  1. Macro word pour récupérer le numéro d'un titre
    Par casolaro dans le forum VBA Word
    Réponses: 2
    Dernier message: 30/11/2005, 08h57
  2. Macro Word Ouffff
    Par Annie dans le forum VBA Word
    Réponses: 9
    Dernier message: 13/11/2005, 00h01
  3. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 20h05
  4. date macro word 2000
    Par cmgirondins dans le forum VBA Word
    Réponses: 14
    Dernier message: 07/09/2005, 12h09
  5. [MACRO][WORD] lancer macro word
    Par jcarre dans le forum Documents
    Réponses: 3
    Dernier message: 02/12/2004, 10h01

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