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 28/04/2011, 17h15   #1
Invité de passage
 
Femme
Étudiant
Inscription : avril 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2011
Messages : 1
Points : 0
Points : 0
Par défaut comment modifier la casse de certains mots à la fermeture d'un document word

Bonjour
je suis tout nouvelle sur le forum, je me trouve douée en "office", mais en fait pas tant que ça quand il s'agit de chose qui sortent un peu de l'ordinaire.
j'ai un peu fouillé, essayé des solutions proposées mais je n'ai rien réussi à faire de ce que je voulais .
mon soucis : je voudrais qu'à la fermeture d'un document word, il y ait un remplacement automatique de tous les "et al" du document en "et al" ; c'est à dire les passer en italique.
j'ai crée une macro (avec l'outil d'enregistrement) mais déjà, elle ne tourne pas.
voila le script :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub etalitalique()
'
' etalitalique Macro
' Macro enregistrée le 28/04/2011 par Marjorie
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "et al"
        .Replacement.Text = "et al"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
est ce que que quelqu'un aurait une solution pour 1/ qu'elle fonctionne ; 2/ qu'elle s'exécute automatiquement à la fermeture du document ?

Merci de votre aide
mayo153 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 19h27   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

Pour qu'une macro soit exécutée à la fermeture d'un document, on travaille sur l'évènement associé.

Code :
1
2
3
Sub Document_Close()
 
End Sub
La méthode Find de l'objet sélection renvoie la valeur True tant que le texte est trouvé, on va donc faire une boucle sur cette méthode et tant que la méthode trouve quelque chose, on effectue la boucle.


Code :
1
2
3
Do
Mon test
Loop While mon test est vrai
Le tout donne ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Document_Close()
Dim booTrouve As Boolean
Selection.HomeKey unit:=wdStory
 
Do
With Selection.Find
    .Text = "nulla"
    booTrouve = .Execute
End With
Selection.Font.Italic = True
Debug.Print "ok"
Loop While booTrouve
End Sub
Cette méthode en plus de renvoyer une valeur vraie modifie la sélection avec ce qu'elle trouve, on modifie le format de la sélection.

Dans ton code, si on le décortique, on ne trouve à aucun moment le changement de format du texte.
__________________
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 !
Heureux-oli est actuellement 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 08h40.


 
 
 
 
Partenaires

Hébergement Web