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 :

Modifier un mot dans une sélection si correspond à :


Sujet :

VBA Word

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut Modifier un mot dans une sélection si correspond à :
    Bonjour,
    Dans le but de modifier un texte word en bbcode perso, j'ai essayé de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub bbcode()
    '
    ' bbcode Macro
    ' portion de code de Oli
    '
    Dim wd
    For Each wd In Selection.Find
    If wd.Bold = True Then
    wd.Text = "[b" & wd.Text & "b]"
    End If
    Next wd
     
    End Sub
    en me basant sur un code de Oli.

    Malheureusement cela ne fonctionne pas puisque cela ne me rajoute pas les bbcode au mot en gras mais me met juste une suite de balises bbcode les unes derrière les autres.
    Quelqu'un peut-il me donner la bonne syntaxe ?
    Merci d'avance
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  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
    Salut,

    Je dirait que c'est normal.

    Ton selection.find est simplement un point d'insertion.

    Si ta sélection en change pas, les balises sont toutes ajoutées au même endroit.

    un début là : http://heureuxoli.developpez.com/off...emplacer/#L3-A
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    Merci,
    mais à force de faire des essais dans tous les sens je suis complètement paumé.
    Je sais bien que le but n'est pas d'avoir le code tout écrit ; mais la cela m'arrangerait vraiment.
    Merci d'avance
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    Eureka !
    j'ai fini par trouver et c'est tout simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim wd
    wd = Selection.Range
    For Each wd In ActiveDocument.Words
    'wd.Select
    If wd.Bold = True Then
     
    MsgBox (wd)
    wd.Bold = False
    wd.Text = "[b" & wd.Text & "b]"
     
    End If
    Next wd
    Par contre, dans le résultat j'ai un espace
    un texte ou un autre
    un [btexte b] ou un autre
    Qui a une idée d'où cela peut venir ?
    Merci d'avance
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par notar Voir le message
    Eureka !
    j'ai fini par trouver et c'est tout simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim wd
    wd = Selection.Range
    For Each wd In ActiveDocument.Words
    'wd.Select
    If wd.Bold = True Then
     
    MsgBox (wd)
    wd.Bold = False
    wd.Text = "[b" & wd.Text & "b]"
     
    End If
    Next wd
    Par contre, dans le résultat j'ai un espace


    Qui a une idée d'où cela peut venir ?
    Merci d'avance
    Je pense que c'est la tendance générale de Word. Il me fait le coup manuellement. Mais, je n'ai jamais essayé par macro.

    Si tu veux enlever l'espace, tu peux essayer, mais, je ne promets rien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub bbcode()
    '
    ' bbcode Macro
    ' portion de code de Oli
    '
     Dim wd
    For Each wd In Selection.Find
    If wd.Bold = True Then
    'En principe Trim() va supprimer les epaces aau début
    'et à la fin du mot
    wd.Text =trim(wd.text)
    wd.Text = "[b" & wd.Text & "b]"
    End If
    Next wd
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/06/2015, 09h41
  2. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  3. modifier Couleur de mot dans une LitsBox
    Par dz_robotix dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/02/2013, 22h11
  4. Sélection de mots dans une macro variable
    Par delph_le dans le forum Macro
    Réponses: 2
    Dernier message: 02/08/2010, 09h25
  5. rechercher et modifier un mot dans une chaine
    Par kergad dans le forum Langage
    Réponses: 1
    Dernier message: 12/01/2010, 22h59

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