On ne doit pas être sur la même planète en ce moment. J'ai un peu de mal à te suivre. Je t'ai précisé que mes connaissances en VBA sont nulles.
Ce que je comprends :
- Je vois des fichiers dans le Template ( normal.dotm, NormalEmail.dotm, Normalold.dotm, et un dossier LiveContent)
- Le fichier que tu m'a envoyé est un .docm, que j'ai ouvert directement, mais peut être fallait t-il le mettre quelque part.
- J'ai cliqué sur "Créer pied de page" ce qui me donne l'image que je t'ai jointe.
-Tu me demandes de regarder normal.dotm, donc le même fichier dans Template car je n'en vois pas d'autre.
-Si j'ouvre ta macro dans le VBA, dans l'explorateur de projet, je vois un dossier Normal dans lequel il y a un dossier Microsoft Word Objets et dans lequel j'ai un document "ThisDocument". (Image jointe)
Donc quand tu me demandes : " Mets ton fichier (pas le Normal.dotm, l'autre, l'équivalent de mon Doc2) en ligne avec le code que tu utilises pour voir. " je ne comprends pas de quoi tu parles, de quel autre ?
[
Le Normal qui s'affiche dans la fenêtre VB Project, c'est ton fichier Normal.dotm.
Tu vois aussi que Project(Doc2) et Project(Document1) lui sont rattachés. Cela veut dire aussi que tous les styles et autres propriétés présents dans Normal seront disponibles également dans les documents rattachés.
Puisque dans Doc2, les macro de création et de suppression fonctionnaient, j'en étais donc arrivé à la conclusion que le problème pouvait se situer dans ton Normal.dotm.
Je t'ai proposé de m'envoyer le fichier Word sur lequel tu souhaitais mettre ton pied de page pour vérifier son fonctionnement sur mon pc, c'est tout.
Il peut arriver que le fichier Normal.dotm crée des problèmes. Dans ce cas, s'il ne contient pas de macros ou de propriétés spécifiques (styles, etc...), le plus simple est de le détruire pour que Word en regénère un nouveau avec ses propriétés par défaut.
La macro fonctionne correctement sur ton fichier.
Après traitement de la macro, tu dois avoir en plus les deux TemplateProject comme dans le vidage d'écran.
Pièce jointe 318287
Non je n'ai pas ces deux TemplateProject. C 'est surement là le problème.
A partir de ton fichier, peux tu réaliser ces vérifications et opérer les changements le cas échéant :
Pièce jointe 318302
Pièce jointe 318304
Pièce jointe 318309
Dans ton code tu as bien la ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Application.Templates.LoadBuildingBlocks
Quel message te donne ce code ? Est-il le même que "Pieds de page"
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
27
28
29 Sub VerifierPiedDePage() Dim I As Integer, J As Integer With ActiveDocument Application.Templates.LoadBuildingBlocks MsgBox Application.Templates(1).BuildingBlockEntries.Count With Application.Templates(1) For J = 1 To .BuildingBlockEntries.Count If InStr(1, .BuildingBlockEntries(J).Name, "Alphabet", vbTextCompare) > 0 Then MsgBox .BuildingBlockTypes(wdTypeFooters).Name End If If .BuildingBlockEntries(J).Name = "Alphabet" Then If .BuildingBlockTypes(wdTypeFooters).Name = "Pieds de page" Then With .BuildingBlockEntries("Alphabet") .Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range, RichText:=True ' .Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range, RichText:=True '.Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterEvenPages).Range, RichText:=True End With End If End If Next J End With End With End Sub
message : 264
OK, si tu n'as pas eu le deuxième message (Cf MsgBox .BuildingBlockTypes(wdTypeFooters).Name) , cela veut dire qu' "Alphabet" n'existe pas dans Template(1)Peux-tu remplacer Template(1) par Template(2) dans le code ? Et voir si tu obtiens le ou les types correspondants pour Alphabet ?
Dernière modification par -Nikopol- ; 08/11/2017 à 20h24.
le message est 3 puis quand je ferme la boite de dialogue, il indique "Pied de page"
Je te joins le code modifié
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
27
28
29
30
31
32
33
34
35 Sub VerifierPiedDePage() ' ' Verifie Macro ' Dim I As Integer, J As Integer With ActiveDocument Application.Templates.LoadBuildingBlocks MsgBox Application.Templates(2).BuildingBlockEntries.Count With Application.Templates(2) For J = 1 To .BuildingBlockEntries.Count If InStr(1, .BuildingBlockEntries(J).Name, "Alphabet", vbTextCompare) > 0 Then MsgBox .BuildingBlockTypes(wdTypeFooters).Name End If If .BuildingBlockEntries(J).Name = "Alphabet" Then If .BuildingBlockTypes(wdTypeFooters).Name = "Pieds de page" Then With .BuildingBlockEntries("Alphabet") .Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range, RichText:=True ' .Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range, RichText:=True '.Insert Where:=ActiveDocument.Sections(1).Footers(wdHeaderFooterEvenPages).Range, RichText:=True End With End If End If Next J End With End With End Sub
Si Pied de page est au singulier, as-tu pensé à modifier le nom dans la ligne de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part If .BuildingBlockTypes(wdTypeFooters).Name = "Pieds de page" Then
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager