Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro erreur 5941

6 réponses
Avatar
Tom
Bonjour,
J'ai abandonné la création de macro depuis ...1999, et à ma grande surprise,
des macros Word créées à cette date pour Winword6 fonctionnent dans Word
2007!
Je reprends donc à zéro la création de macro à l'aide du livre de Marina
(Word 2007, le guide complet) et j'ai réussi la première, MaSignature.

Cependant, l'essai de création d'une macro installant dans le bas de page le
n° de page sur le nombre de page, qui me paraissait accessible, n'a pas
fonctionné, avec comme code d'erreur 5941, le membre de la collection requis
n'existe pas
et dans le débogage :
WordBasic.ViewFooterOnly
==> ActiveDocument.AttachedTemplate.BuildingBlockEntries("Numéros en gras
3"). _
Insert Where:=Selection.Range, RichText:=True

C'est quoi le membre de la collection dans ce cas précis?
Merci de m'éclairer pour me permettre de progresser un peu.
Cordialement,
--
Tom

6 réponses

Avatar
heureux-oli
Salut,

Le BuildingBlockEntries("Numéros en gras 3") n'existe pas et c'est pour
cette raison que tu rencontre une erreur.
Tu as probablement utilisé l'enregistreur de macro et malheureusement, il
foire pour cette opération.

Je ne dis pas que le livre de Marina n'est pas bon, mais j'en connais un
bien meilleur.
http://www.amazon.fr/exec/obidos/ASIN/2742982450/wwwdeveloppec-21

Aie pas sur la tête Geo,



--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"Tom" a écrit dans le message de news:
%23iRZWd%
Bonjour,
J'ai abandonné la création de macro depuis ...1999, et à ma grande
surprise, des macros Word créées à cette date pour Winword6 fonctionnent
dans Word 2007!
Je reprends donc à zéro la création de macro à l'aide du livre de Marina
(Word 2007, le guide complet) et j'ai réussi la première, MaSignature.

Cependant, l'essai de création d'une macro installant dans le bas de page
le n° de page sur le nombre de page, qui me paraissait accessible, n'a pas
fonctionné, avec comme code d'erreur 5941, le membre de la collection
requis n'existe pas
et dans le débogage :
WordBasic.ViewFooterOnly
==> ActiveDocument.AttachedTemplate.BuildingBlockEntries("Numéros en
gras 3"). _
Insert Where:=Selection.Range, RichText:=True

C'est quoi le membre de la collection dans ce cas précis?
Merci de m'éclairer pour me permettre de progresser un peu.
Cordialement,
--
Tom




Avatar
Tom
"heureux-oli" a écrit dans le message de
groupe de discussion :
Salut,

Le BuildingBlockEntries("Numéros en gras 3") n'existe pas et c'est pour
cette raison que tu rencontre une erreur.
Tu as probablement utilisé l'enregistreur de macro et malheureusement, il
foire pour cette opération.

Je ne dis pas que le livre de Marina n'est pas bon, mais j'en connais un
bien meilleur.
http://www.amazon.fr/exec/obidos/ASIN/2742982450/wwwdeveloppec-21

Aie pas sur la tête Geo,



Merci pour cette réponse, je ne comprends pas bien que le
BuildingBlockEntries("Numéros en gras 3") n'existe pas alors qu'il est créé
par l'enregistreur mais je vais chercher une autre option.
Pour le livre, j'aime bien la façon d'expliquer de Marina, mais son livre
n'est pas une formation au VBA, juste une introduction et pour le moment ça
devrait me suffire!.
Merci encore.
--
Tom
Avatar
Geo
Bonjour Olivier

Je ne dis pas que le livre de Marina n'est pas bon, mais j'en connais un bien meilleur.



pourquoi pas les deux ? mdr

--
A+
Avatar
Circé
Bonjour,


"heureux-oli" a annoncé :
Je ne dis pas que le livre de Marina n'est pas bon, mais j'en connais un
bien meilleur.
http://www.amazon.fr/exec/obidos/ASIN/2742982450/wwwdeveloppec-21

Aie pas sur la tête Geo,




C'est moi qui vais te taper sur la tête !...



Merci pour cette réponse, je ne comprends pas bien que le
BuildingBlockEntries("Numéros en gras 3") n'existe pas alors qu'il est créé
par l'enregistreur mais je vais chercher une autre option.
Pour le livre, j'aime bien la façon d'expliquer de Marina, mais son livre
n'est pas une formation au VBA, juste une introduction et pour le moment ça
devrait me suffire!.



Merci Tom ;))

Effectivement ce livre n'est pas du tout un livre sur le VBA, mais en
tant que guide complet, il se doit d'aborde le VBA.

Pour en revenir à ton problème, tu as donc utilisé l'enregistreur qui,
comme dirait Geo, "est ton ami"... Quelquefois ce n'est pas un ami
intime, et il te fait des coups par derrière. Déjà on demande pourquoi
il va chercher du WordBasic pour aller dans le pied de page...

Concernant l'entrée du BuildingBlock, oui elle existe puisque tu as pu
l'insérer dans ton document. Ce qui me choque, c'est que
l'enregistrement de la macro va chercher l'entrée de bloc dans le
modèle attaché (AttachedTemplate). Or, par défaut, les blocs de
construction ne sont pas dans les modèles attachés, mais dans le modèle
buildingblocks.dotx.

Il faudrait donc préciser où se trouve le template en question :

modèle = "C:...Application DataMicrosoftDocument Building
Blocks1036building blocks.dotx"
Templates(modèle).AutoTextEntries("Numéros en gras 3").Insert _

Where:¬tiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range


Circé
http://faqword.com

Merci encore.


Avatar
Tom
"Circé" a écrit dans le message de groupe de discussion :


Merci Tom ;))

Effectivement ce livre n'est pas du tout un livre sur le VBA, mais en tant
que guide complet, il se doit d'aborde le VBA.

Pour en revenir à ton problème, tu as donc utilisé l'enregistreur qui,
comme dirait Geo, "est ton ami"... Quelquefois ce n'est pas un ami intime,
et il te fait des coups par derrière. Déjà on demande pourquoi il va
chercher du WordBasic pour aller dans le pied de page...

Concernant l'entrée du BuildingBlock, oui elle existe puisque tu as pu
l'insérer dans ton document. Ce qui me choque, c'est que l'enregistrement
de la macro va chercher l'entrée de bloc dans le modèle attaché
(AttachedTemplate). Or, par défaut, les blocs de construction ne sont pas
dans les modèles attachés, mais dans le modèle buildingblocks.dotx.

Il faudrait donc préciser où se trouve le template en question :

modèle = "C:...Application DataMicrosoftDocument Building
Blocks1036building blocks.dotx"
Templates(modèle).AutoTextEntries("Numéros en gras 3").Insert _

Where:¬tiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range



Merci pour ces précisions, je vais essayer de mettre en application.
Cordialement
--
Tom
Avatar
jslariviere
Le mardi 08 Décembre 2009 à 10:17 par Tom :
Bonjour,
J'ai abandonné la création de macro depuis ...1999, et à
ma grande surprise,
des macros Word créées à cette date pour Winword6
fonctionnent dans Word
2007!
Je reprends donc à zéro la création de macro à
l'aide du livre de Marina
(Word 2007, le guide complet) et j'ai réussi la première,
MaSignature.

Cependant, l'essai de création d'une macro installant dans le bas de
page le
n° de page sur le nombre de page, qui me paraissait accessible, n'a pas
fonctionné, avec comme code d'erreur 5941, le membre de la collection
requis
n'existe pas
et dans le débogage :
WordBasic.ViewFooterOnly
==>
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Numéros en
gras
3"). _
Insert Where:=Selection.Range, RichText:=True

C'est quoi le membre de la collection dans ce cas précis?
Merci de m'éclairer pour me permettre de progresser un peu.
Cordialement,
--
Tom


Bonjour,

J'ai un problème similaire. Cependant, je n'ai aucune connaissance du VB. Donc, si vous pouvez m'aider à décortiquer tout ça. J'ai un message disant :
-------------------------------------------------------------
« Erreur d'exécution '5941':
Le membre de la collection requis n'existe pas.»
-------------------------------------------------------------


Voici mon code. J'ai réduit le problème au plus simple en essayant simplement d'ajouter un numéro de page dans une en-tête.
-------------------------------------------------------------
Sub Macro1()
'
' Macro1 Macro
'
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Application.Templates( _
"C:UserslariviejeAppDataRoamingMicrosoftDocument Building Blocks103614Built-In Building Blocks.dotx" _
).BuildingBlockEntries(" Vide").Insert Where:=Selection.Range, RichText:= _
True
Selection.TypeText Text:="Test" & Chr(11)
Application.Templates( _
"C:UserslariviejeAppDataRoamingMicrosoftDocument Building Blocks103614Built-In Building Blocks.dotx" _
).BuildingBlockEntries("Numéro normal").Insert Where:=Selection.Range, _
RichText:=True
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
-------------------------------------------------------------


Le débogage surligne cette portion du code, mais j'ignore qu'est-ce qui cloche puisque ce code s'est généré de lui-même avec l'enregistreur.
-------------------------------------------------------------
Application.Templates( _
"C:UserslariviejeAppDataRoamingMicrosoftDocument Building Blocks103614Built-In Building Blocks.dotx" _
).BuildingBlockEntries(" Vide").Insert Where:=Selection.Range, RichText:= _
True
-------------------------------------------------------------


Merci d'avance.