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

VB.NET Discussion :

Remplacer une sélection avec des caractères "*" par un autre


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 11
    Points
    11
    Par défaut Remplacer une sélection avec des caractères "*" par un autre
    Bonjour à tous,

    Mon but est de mettre à jour un style dans un grand nombre d'occurence

    Mon problème est le suivant : j'aimerai remplacer toutes les occurrences d'une suite de caractères par la même mais avec le nouveau style.

    Comme la suite de caractères contient des caractères variables j'ai eu l'idée de rechercher avec le caractère * . Il me trouve bien les mots mais ensuite lorsque je veux le remplacer par le mm mot mais cette fois ci avec le style adéquat, il me remplace le mot par celui avec des * (ce qui est logique)

    Par exemple :

    j'ai Voiture-KIA-1 avec un style nommé KIA style
    Voiture-KIA-2

    et j'aimerai donc rechercher ces occurences dans mon doc et mettre à jour les syles voilà mon code :

    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
    Sub maj()
     
     
           With Selection.Find
     
            .ClearFormatting
            .Style = ActiveDocument.Styles("KIA style")
            .Replacement.ClearFormatting
            .Replacement.Style = ActiveDocument.Styles("KIA style")
     
            .Text = "Voiture-KIA-*"
            .Replacement.Text = .Text
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
     
        End With
     
        Selection.Find.Execute Replace:=wdReplaceAll
     
    End Sub

    Voila le pb c'est qu'il me trouve bien toutes les occurences, il met bien mon style à jour mais il remplace Voiture-KIA-1 et Voiture-KIA-2 par Voiture-KIA-*

    J'ai essayé sans la ligne .Replacement.Text = .Text mais il ne fait alors pas la mise à jour du style.


    Vous comprendrez bien que le style à évoluer et ma fonction sert à mettre à jour le style.

    Par avance merci beaucoup et c'est vrai que ma requête n'est pas méga claire ...

  2. #2
    Membre averti Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Points : 355
    Points
    355
    Par défaut
    Salut,

    J'ai jamais fait ce que tu essaie de faire mais logiquement tu devrais remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .Text = "Voiture-KIA-*"
    .Replacement.Text = .Text
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .Text = "Voiture-KIA-*"
    .Replacement.Text = taSelection ?


    Je suis peut-être carrément dans le champs aussi

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    Salut,

    Merci pour ton aide mais je ne comprends pas vraiment ce que tu me demandes de faire.

    Quand je fais le remplacement de text par .Text ça revient au même que de mettre maselection non ?

    Enfin qu'est-ce que tu entends par "taselection" ? comment je le met en forme dans le code ?


    Merci

  4. #4
    Membre averti Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Points : 355
    Points
    355
    Par défaut
    Salut,

    j'imagine que .text c'est ce que tu recherche.

    Par ta sélection, je veux dire : ce que ton find à trouver.

    Genre si je cherche Patate-Choux-* dans bloc note, il va surligner Patate-Choux-1 par exemple.

    C'est ce qui est surligné que j'appelle taSélection! Donc qu'il remplace exactement par ce qu'il vien de trouver!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    Re,

    Oui c'est bien ce que j'avais compris mais alors du point de vue code ya un pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Replacement.Text = Selection
    Avec ce code ça fonctionne bien mais seulement pour la première occurrence et après toutes les occurences sont remplacées par la mm chose .

    Voiture-KIA-1 est bien remplacé par Voiture-KIA-1 avec nouveau style mais
    Voiture-KIA-2 est AUSSI remplacé par Voiture-KIA-1 (avec nouveau style)

    ce qui est logique car la selection a la valeur de la première sélection i.e. Voiture-KIA-1

    Donc il faudrai pouvoir faire une boucle mais je n'arrive pas

  6. #6
    Membre averti Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Points : 355
    Points
    355
    Par défaut
    Salut,

    Désolé, je connais ca assez l'interaction entre Word et Vb.net pour répondre à ta question. Mais continue à chercher sur internet, ya assurément moyen de boucler dans ce que selection.find retourne!

    bonne chance

  7. #7
    Membre régulier Avatar de Magistross
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 73
    Points
    73
    Par défaut
    Dans ton replacement.text tu peux faire référence aux expressions que tu mets entre parenthèses dans ton .text en utilisant \n où n est le rang de l'expression (1-indexed).

    Donc essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Text = "Voiture-KIA-(*)>"
    .Replacement.Text = "Voiture-KIA-\1"
    Le ">" c'est pour spécifier la fin d'un mot. Tu trouveras plein de trucs intéressant sur le "search and replace" ici.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/11/2014, 22h55
  2. [Solaris][KSH] awk : Remplacer un motif dans des noms de fichiers par un autre motif
    Par keketteboy dans le forum Shell et commandes POSIX
    Réponses: 0
    Dernier message: 12/10/2012, 15h23
  3. Remplacer une chaine avec des slash
    Par phpaide dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/03/2011, 19h06
  4. Réponses: 3
    Dernier message: 16/12/2006, 12h59
  5. Select et insert avec des caracteres speciaux (quote ')
    Par Paco75 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2006, 14h59

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