[VBA] Code pour modifié format du texte dans zone de texte [Résolu/Fermé]

Messages postés
34
Date d'inscription
vendredi 17 octobre 2014
Statut
Membre
Dernière intervention
23 février 2016
-
Bonjour,

J'ai un soucis sur Word lors de l'utilisation de VBA.

J'ai créé une macro VBA permettant de mettre à jour les zones de textes par l'ajout des propriété du document suite à leur modification. Cela fonctionne bien et tout ce met à jour, mais les formats du texte ne sont pas conservés ?!?

Ma question est donc : Comment forcer le changement du format d'une zone de texte par des lignes en code VBA ?
Dans mon document, il y a plusiers zones de texte, mais toutes n'ont pas un format identique, je voudrais donc qu'elles soient modifiées chacune avec un format particulier, hors comment savoir "l'identifiant" d'une zone de texte, afin de lui attribuer le bon format ?

Exemple :
- La première zone de texte ne doit pas être modifiée, car rien ne change dedans.
- le texte de la deuxième zone de texte doit être taille 20, en Franklin Gothic Medium, et avec des ombre (sur le texte, pas la zone de texte)
- le texte de la deuxième zone de texte doit être taille 22, en Franklin Gothic Medium, et avec des ombre (sur le texte, pas la zone de texte)
- le texte de la deuxième zone de texte doit être taille 24, en Franklin Gothic Medium, et avec des ombre (sur le texte, pas la zone de texte)
- le texte de mon pied de page (qui se met à jour aussi avec les propriétés du document) doit être taille 9, en Franklin Gothic Medium, et avec des ombre (sur le texte, pas la zone de texte)

Ce que je souhaite est-il réalisable ?

Lien pour obtenir le fichier : http://www.cjoint.com/c/FBciqpNRv10

PS : Dans le fichier joint, si vous modifier le commentaire dans les propriétés du document, et en cliquant sur la barre tout en haut de la première page, cela met à jour les donnée des zones de texte de la page. Vous verrez alors que les formats ne sont par respectés.

Merci par avance de votre aide

Cordialement

Floki72450

Afficher la suite 

1 réponse

Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
397
0
Merci
Bonjour,

Voici un exemple a adapter à la configuration. J'ai mis une MsgBox pour connaitre le nom des shapes. Ensuite je me suis amusé à modifier une shape avec un peu de fantaisie :-)

Private Sub CommandButton1_Click()
Dim oField As Field
Dim oSection As Section
Dim oHeader As HeaderFooter
Dim oFooter As HeaderFooter
Dim oSh As Shape
For Each oSection In ActiveDocument.Sections
For Each oFooter In oSection.Footers
If oFooter.Exists Then
For Each oField In oFooter.Range.Fields
oField.Update
Next oField
End If
Next oFooter
For Each oHeader In oSection.Headers
If oHeader.Exists Then
For Each oField In oHeader.Range.Fields
oField.Update
Next oField
End If
Next oHeader
Next oSection
'Boucle sur tous les shapes du document
For Each oSh In ActiveDocument.Shapes
    'Selection du Shapes
    oSh.Select
     MsgBox oSh.Name ' pour connaitre le nom des shapes
    If oSh.Name = "Rectangle 15" Then
    'exemple a adapter
    oSh.Select
    With Selection
     .Font.Size = 22
     .Font.Name = "Franklin Gothic Medium"
     .Font.Bold = True
     .Font.Color = wdColorRed
     End With
    End If
   'Mise à jour des champs
    Selection.Fields.Update
Next oSh
For Each champ In ActiveDocument.Range.Fields
champ.Update
Next champ


ActiveDocument.PrintPreview
ActiveDocument.ClosePrintPreview
ActiveDocument.PrintPreview
ActiveDocument.ClosePrintPreview
End Sub




cs_Le Pivert
Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
397 > Floki72450
Messages postés
34
Date d'inscription
vendredi 17 octobre 2014
Statut
Membre
Dernière intervention
23 février 2016
-
Sub Pied_de_page()
    WordBasic.ViewFooterOnly
     With Selection
        .Font.Size = 9
        .Font.Name = "Franklin Gothic Medium"
        .Font.Bold = True
        .Font.Color = wdColorBlack
        End With
End Sub


Voilà

@+
Floki72450
Messages postés
34
Date d'inscription
vendredi 17 octobre 2014
Statut
Membre
Dernière intervention
23 février 2016
> cs_Le Pivert
Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
-
Je te remercie, mais ton code ne fonctionne pas vraiment, il permet simplement de voir le pied de page, mais pas de le modifier.
Cependant, j'ai trouver la solution en mélangeant des bribes d'aide sur d'autres sites internet.
Voici donc le code qui vas très bien :) (pour les curieux qui ont le même problème que moi ^^) :

ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Size = 9
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Name = "Franklin Gothic Medium"
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Bold = False
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Shadow = True
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Color = wdColorBlack


Il est un peut répétitif mais je ne sais pas comment réduire la taille tout en conservant l'efficacité ^^
Si au passage tu as une idée pour en réduire la taille :)

Merci encore beaucoup pour ton aide, je marque résolu !! :)
cs_Le Pivert
Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
397 -
Il suffit de faire comme ceci:

Sub Pied_de_page_2()
With ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary)
.Range.Font.Size = 9
.Range.Font.Name = "Franklin Gothic Medium"
.Range.Font.Bold = False
.Range.Font.Shadow = True
.Range.Font.Color = wdColorBlack
End With
End Sub


@+ Le Pivert
Floki72450
Messages postés
34
Date d'inscription
vendredi 17 octobre 2014
Statut
Membre
Dernière intervention
23 février 2016
> cs_Le Pivert
Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
-
merci beaucoup :)
cs_Le Pivert
Messages postés
6263
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2019
397 -
Voici un site à consulter sans modération:

http://vb.developpez.com/faqvba/?page=3.7#Wheaderfooter