Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 17h08   #1
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 8
Points : 1
Points : 1
Par défaut Macro word pour ajouter () à des références

Bonjour,
je souhaite réaliser une macro word pour mettre des références entre parenthèses.
Ces références peuvent être :
- des nombres à 2 chiffres comme "22"
- des nombres à 2 chiffres et une lettre comme "22a"
- plusieurs nombres à 2 chiffres séparés d'une virgule "22,24" ou avec un espace "22, 24"
- une lettre seule en majuscule comme "A" (mais pas la première lettre majuscule d'un mot)

J'ai déjà fait une macro (voir ci-dessous) qui permet d'ajouter les () aux nombres à 2 chiffres mais pour le reste je n'ai pas les compétences.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Macro2()
'
' Macro2 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^#^#"
        .Replacement.Text = "(^&)"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
potiocom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 18h57   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Il faut utiliser respecter la casse et mot entier pour une lettre en majuscule et évidemment utiliser les caractères génériques.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
With Selection.Find
        .Text = "<[A-Z]>" 'Un seul caractère entre A et Z avec début et fin de mot
        .Replacement.Text = "(^&)"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True 'Respecter la casse
        .MatchWholeWord = True 'Mot entier
        .MatchWildcards = True 'caractères génériques
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
Code :
1
2
3
4
5
6
7
With Selection.Find
        .Text = "[0-9]{2}, [0-9]{2}" 'Deux chiffres puis une virgule et espace puis deux chiffres
        .Replacement.Text = "(^&)"
        .MatchWildcards = True 'caractères génériques
        .MatchSoundsLike = False
        .Execute replace:=wdReplaceAll
    End With
Voila un début de solution, il reste à l'adapter à ton problème
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 08h50   #3
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : octobre 2011
Messages : 8
Points : 1
Points : 1
Merci pour la réponse, mais comment faire pour que la macro fasse tout ce que j'ai cité dans le 1er message ?
potiocom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h02.


 
 
 
 
Partenaires

Hébergement Web