IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Ouvrir un nouveau document avec un modele perso


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut Ouvrir un nouveau document avec un modele perso
    Bonjour,

    Je chercher grâce à un vbs à créer un nouveau document Word.
    Sachant que j'ai créé un modéle qui contient un certain nombre de macro, je souhaite que ce nouveau document soit basé sur MonModel.dot.

    Voici l'un des nombreux tests réalisés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Set objWord = CreateObject("Word.Application")
    Dim objWordDoc
    Documents.Add Template:="C:\OEW.Dot"  , NewTemplate:=False, DocumentType:=0
     
    objWord.Visible = false
     
    ScreenUpdating=True
    objWordDoc.SaveAs "C:\WordOESave.doc"
    objWord.Quit
    Set objWordDoc = nothing
    Malheureusement, malgré de nombreux essais, une recherche poussée dans les différents messages, je n'arrive pas à mon sortir.

    J'espère l'un de vous pourra éclairer ma lanterne.

    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Merci pour cette réponse rapide.

    J'avais bien vu cet article mais n'ayant jamais fait de vba ou vbs, je suis un peu perdu.

    Je suis sur que pour ceux qui manipule cela au quotidien c'est tout bête...

    Alors si l'un de vous aurait la gentillesse de me dire où pèche mon bout de code.

    Merci par avance.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Si tu déclares un objet document, il faut lui affecter un objet.

    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
     
    'Avec cette ligne tu affecte un objet Application à une 
    'variable qui n'est pas déclarée
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
    'Tu déclares un variable non typée
    Dim objWordDoc As Object
    'Tu dois affecter une donnée à ton objet
    Set objWord = Documents.Add Template:="C:\OEW.Dot"  , NewTemplate:=False, DocumentType:=0
     
    objWord.Visible = false
     
    ScreenUpdating=True
    objWordDoc.SaveAs "C:\WordOESave.doc"
    'Après sauvegarde, il faut fermer
    objWordDoc.Close
    'Tu dois libérer les objets
    Set objWordDoc = Nothing
    objWord.Quit
    Set objWordDoc = nothing

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Je vous remercie pour vos commentaires qui ont le mérite d'être très clair.
    Néanmoins, lorsque je lance ce script, j'ai une erreur à la ligne 5 qui correspond à la déclaration de l'objet objWord.

    Et là j'avoue que j'y perd le peu de latin qui me reste.

    Merci encore

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Je ne suis pas très fort en VBS, et je pense que les variables ne sont pas typées à leur déclaration.

    Pour ce qui est de la déclaration.
    Dans un autre tuto sur le VBA, j'y explique comment déclarer les variables et leur affecter des données.

    Dans le cas de
    Dim objWord, on déclare un objet Word et ensuite, il faut lui affecter une objet.
    Alors que pour les affectations de variables simple, on utilise un "=", pour un objet on utilise le mot réservé "Set".

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En VBS on ne type pas les variables, essayes tout simplement

    De même pour les autres.

    Philippe

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Merci à vous deux pour votre aide.

    En enlevant le typage cela passe, je suis maintenant bloquée sur l'instruction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set objWord = Documents.Add Template:="C:\OEW.Dot"  , NewTemplate:=False, DocumentType:=0
    Une idée?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Vbs n'adment pas les constantes nommées, il faut que tu les passes toutes dans l'ordre prévu dans l'instruction.

    Philippe

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Merci pour cette réponse.

    J'ai bien suivi vos conseils en modifiant la commande de la manière suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set objWord = Documents.Add "C:\OEW.Dot",False,0
    Mais le problème reste entier!

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Cette fois c'est ma faute
    Il faut des () lorsque l'on utilise un =
    du moins en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objWord = Documents.Add ("C:\OEW.Dot",False,0)

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Cette fois c'est ma faute
    Il faut des () lorsque l'on utilise un =
    du moins en VBA
    Idem en VBScript

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    On avance....

    Bon merci encore, mais j'ai un nouveau message d'erreur qui est

    "Objet requis: Documents"

    Pourtant, il me semblait que Documents était un objet de Word.Application

    Merci encore

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Oui, Tu as raison.


    Je me demande si tu ne dois pas utiliser l'objet Application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objWordDoc = objWord.Documents.Add ("C:\OEW.Dot",False,0)

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Super cela fonctionne.

    Merci beaucoup à ceux qui m'ont aidé, cela ma retiré une belle épine du pied

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Bouton pour ouvrir un nouveau document vierge existant
    Par Stevy3396 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2015, 03h00
  2. Réponses: 2
    Dernier message: 28/07/2011, 17h41
  3. Ouvrir un nouveau document avec un modele perso
    Par iloyer dans le forum VBScript
    Réponses: 1
    Dernier message: 18/05/2009, 14h27
  4. ouvrir un nouveau document word
    Par milki1 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/12/2007, 16h49
  5. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo