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

Problème VBA et .documents.add template...

4 réponses
Avatar
Bonjour à tous,

J'ai quelques soucis avec ma base Access... J'ai importé tous les objets vers une nouvelle base de données mais cela n'a pas
suffit...
Les problèmes sont ils tous lié à un endommagement de la base ?

Bref le problème qui est l'objet de la question c'est le code suivant :

Dim appwrd as word.application
Dim MonNouveauDocument

Set Appwrd=createobject ("Word.application")
with appwrd
if forms!formulaire.donnees="test" then
.documents.add template:="c:\documents and settings\util1\application data\microsoft\modèles\mod1.dot",
documenttype:=wdnewblankdocument, visible:=true
else
.documents.add template:="c:\documents and settings\util1\application data\microsoft\modèles\mod2.dot",
documenttype:=wdnewblankdocument, visible:=true
end if

J'avoue ne pas maitriser : .documents.add template:="c:\documents and settings\util1\application data\microsoft\modèles\mod1.dot",
documenttype:=wdnewblankdocument, visible:=true

Mais ce que je ne comprend pas c'est que dans les deux cas ni mod1, ni mod2 ne sont pris en compte il semblerait que ce soit
systèmatiquement normal.dot qui est pris en compte.

Je pensais au moins que si il y avait une erreur dans le chemin ou dans le code il y aurait un message d'erreur....

Merci de toute contribution.

Merci d'avoir lu jusque là.

4 réponses

Avatar
il y a déjà un petit problème dans le sens ou la variable
n'a pas les mêmes caractères. Variable déclarée appwrd
puis plus loin tu parles de Appwrd.
Corriges déjà cela puis vérifie
-----Message d'origine-----
Bonjour à tous,

J'ai quelques soucis avec ma base Access... J'ai importé
tous les objets vers une nouvelle base de données mais

cela n'a pas
suffit...
Les problèmes sont ils tous lié à un endommagement de la
base ?


Bref le problème qui est l'objet de la question c'est le
code suivant :


Dim appwrd as word.application
Dim MonNouveauDocument

Set Appwrd=createobject ("Word.application")
with appwrd
if forms!formulaire.donnees="test" then
.documents.add template:="c:documents and
settingsutil1application

datamicrosoftmodèlesmod1.dot",
documenttype:=wdnewblankdocument, visible:=true
else
.documents.add template:="c:documents and
settingsutil1application

datamicrosoftmodèlesmod2.dot",
documenttype:=wdnewblankdocument, visible:=true
end if

J'avoue ne pas maitriser : .documents.add
template:="c:documents and settingsutil1application

datamicrosoftmodèlesmod1.dot",
documenttype:=wdnewblankdocument, visible:=true

Mais ce que je ne comprend pas c'est que dans les deux
cas ni mod1, ni mod2 ne sont pris en compte il semblerait

que ce soit
systèmatiquement normal.dot qui est pris en compte.

Je pensais au moins que si il y avait une erreur dans le
chemin ou dans le code il y aurait un message d'erreur....


Merci de toute contribution.

Merci d'avoir lu jusque là.


.



Avatar
Raymond [mvp]
Bonjour.
le code que tu affiches ne peut pas provenir d'un module access. d'où le
tiens-tu ? il n'a jamais tourné ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"@pollo"

.desirable.laposte.net> a écrit dans le message de
news:%23%
Bonjour à tous,

J'ai quelques soucis avec ma base Access... J'ai importé tous les objets
vers une nouvelle base de données mais cela n'a pas

suffit...
Les problèmes sont ils tous lié à un endommagement de la base ?

Bref le problème qui est l'objet de la question c'est le code suivant :

Dim appwrd as word.application
Dim MonNouveauDocument

Set Appwrd=createobject ("Word.application")
with appwrd
if forms!formulaire.donnees="test" then
.documents.add template:="c:documents and settingsutil1application
datamicrosoftmodèlesmod1.dot",

documenttype:=wdnewblankdocument, visible:=true
else
.documents.add template:="c:documents and settingsutil1application
datamicrosoftmodèlesmod2.dot",

documenttype:=wdnewblankdocument, visible:=true
end if

J'avoue ne pas maitriser : .documents.add template:="c:documents and
settingsutil1application datamicrosoftmodèlesmod1.dot",

documenttype:=wdnewblankdocument, visible:=true

Mais ce que je ne comprend pas c'est que dans les deux cas ni mod1, ni
mod2 ne sont pris en compte il semblerait que ce soit

systèmatiquement normal.dot qui est pris en compte.

Je pensais au moins que si il y avait une erreur dans le chemin ou dans le
code il y aurait un message d'erreur....


Merci de toute contribution.

Merci d'avoir lu jusque là.




Avatar
Bonjour à tous,
Bonjour et merci à toi Raymond

le code que tu affiches ne peut pas provenir d'un module access. d'où
le tiens-tu ? il n'a jamais tourné ?


Oui, il manquait la fin du code, mais il vient bien d'Access. Seulement il était sur un autre ordinateur => je l'avais copié en le
retappant d'où l'absence des majuscules habituelles qui ont du attirer l'oeil.

Entre temps j'ai externalisé le problème du code dans une base Access toute neuve car :
J'ai quelques soucis avec ma base Access...
J'en ai de plus profiter pour épurer tout ce qui était me semblait-il potentiellement génant d'où le code suivant plus épuré :

------------------------------------------------------------------------------------------------------------------------------------
----------
Function Bidon()
Dim Appwrd As Word.Application
Dim MonNouveauDocument
Dim NomModele As String

NomModele = "C:test1bis.dot"
Set Appwrd = CreateObject("Word.Application")

With Appwrd
.Documents.Add Template:=NomModele ', Documenttype:=wdNewBlankDocument, Visible:=True
Set MonNouveauDocument = Documents.Add
MonNouveauDocument.SaveAs "C:Test.doc"
MonNouveauDocument.Activate
Documents.Open "C:" & MonNouveauDocument
End With
Appwrd.ActiveDocument.Activate
Appwrd.Visible = True
Appwrd.Quit
Set Appwrd = Nothing

End Function
-----------------------------------------------------------------------------------------------------------------------------------
Donc Test1bis.dot est bien à la racine, il contient bien "44 mots" dixit la barre statistique.
Le code précédent me génére un document word totalement vierge à l'image de mon normal.dot sans message du tout.
Je soupçonne la partie du code :
Set MonNouveauDocument = Documents.Add
d'être à l'origine de la création du document vierge (execution pas à pas) mais
.Documents.Add Template:=NomModele
ne fait rien du tout de visible et si j'enlève
Set MonNouveauDocument = Documents.Add
j'ai le message objet requis sur la ligne
Set MonNouveauDocument = Documents.Add
Je cherche toujours quoi...

Merci de tout contribution.

Raymond [mvp] wrote:
Bonjour.
le code que tu affiches ne peut pas provenir d'un module access. d'où
le tiens-tu ? il n'a jamais tourné ?


Avatar
Bonjour à tous,
Une insomnie et hop ça va mieux :
-------------------------
Function Tulliez()
Dim Appwrd As Word.Application
Set Appwrd = CreateObject("Word.Application")
With Appwrd
.Documents.Add Template:=.Application.NormalTemplate.Path & "RecapClient.dot" ', Documenttype:=wdNewBlankDocument,
Visible:=True
.ActiveDocument.SaveAs "C:TEST.doc"
'.Show

End With
Appwrd.ActiveDocument.Activate
Appwrd.Visible = True
'Documents.Open "C:TEST.doc"
Appwrd.Quit
Set Appwrd = Nothing
End Function
---------------------------------
Merci à Philippe Tulliez :
http://minilien.com/?QlBsNwNP0h

A noter les '.show et 'Documents.Open "C:TEST.doc"
marquent mon problème qui demeure de faire apparaitre Word et mon fichier ouvert à la fin du code mais bon il faut peut être que je
fasse une autre ficelle ?

En tout cas merci de votre aide.
Merci d'avoir lu jusque là.