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 :

VBA: Pb pour sauvegarder automatiquement un fichier WORD avec Excel


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut VBA: Pb pour sauvegarder automatiquement un fichier WORD avec Excel
    Bonjour à tous,

    Je suis un gros débutant en VBA word ( et je me débrouille bien en VBA Excel)
    J'ai un soucis je n'arrive pas sauvegarder de façon automatique un fichier word avec excel.
    Avec mon code j'arrive toujours sur la fenetre SaveFile mais c'est tjs à moi de donner le nom du fichier et son emplacement...
    l'objectif c'est que le fichier s'enregistre au nom indiqué dans l'emplacement indiqué
    J'ai parcouru plein de forum et je ne comprend pas pourquoi cela ne marche pas chez moi.

    Je ne comprend pas voici le code qui est tous simple :

    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
    Sub word_avec_excel()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
     
    Set WordApp = CreateObject("Word.Application")     '-- ouvre une session Word
        WordApp.Visible = True
        Set WordDoc = WordApp.Documents.Add    '-- crée un nouveau document
     
        WordApp.Selection.TypeText "Test de fonctionnement"
     
    newName = "Test"
    WordApp.ActiveDocument.SaveAs Filename:="C:\" & newName & ".docx"
     
    End Sub
    Merci par avance pour votre aide !

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par ingft Voir le message
    Bonjour à tous,

    Je suis un gros débutant en VBA word ( et je me débrouille bien en VBA Excel)
    J'ai un soucis je n'arrive pas sauvegarder de façon automatique un fichier word avec excel.
    Avec mon code j'arrive toujours sur la fenetre SaveFile mais c'est tjs à moi de donner le nom du fichier et son emplacement...
    l'objectif c'est que le fichier s'enregistre au nom indiqué dans l'emplacement indiqué
    J'ai parcouru plein de forum et je ne comprend pas pourquoi cela ne marche pas chez moi.

    Je ne comprend pas voici le code qui est tous simple :

    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
    Sub word_avec_excel()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
     
    Set WordApp = CreateObject("Word.Application")     '-- ouvre une session Word
        WordApp.Visible = True
        Set WordDoc = WordApp.Documents.Add    '-- crée un nouveau document
     
        WordApp.Selection.TypeText "Test de fonctionnement"
     
    newName = "Test"
    WordApp.ActiveDocument.SaveAs Filename:="C:\" & newName & ".docx"
     
    End Sub
    Merci par avance pour votre aide !
    As-tu Word 2010 ?

    Je pose la question très sérieusement, parce que c'est le genre de situation où j'ai remarqué les caprices de VBA Office 2010 par rapport à VBA OfficeXP

    Par exemple, sans utiliser automation, comme enregistrer dans Word à partir de VBA Word, ou dans Excel à partir de VBA Excel:

    Ceci fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    newName = "Test"
    ActiveDocument.SaveAs Filename:="C:\" & newName & ".docx"
    Mais ceci plante joyeusement, alors que cela passait comme du beurre dans la poêle avec VBA Word 2002:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    newName = C:\Test.docx
    ActiveDocument.SaveAs(newname)
    ou même avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.SaveAs("C:\test.docx")
    c'est pareil.

    Et c'est là que ma question prend tout son sens, parce que Automation dans VBA Office 2010 oblige de faire exactement le contraire, du moins chez-moi:

    Ceci plante joyeusement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WordApp.ActiveDocument.SaveAs Filename:="C:\test.docx"
    mais ceci fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WordApp.ActiveDocument.SaveAs ("C:\test.docx")
    C'est con, mais c'est comme cela. Je ne sais pas si cela peut avoir une influence quelconque, mais j'utilise Office à 64 bits.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    J'ai effectivement word 2010 en 64 bit et aucun codes ne passe... c'est dingue quand même...
    Il n'existe pas de correctif à ce bug ?

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    À ma grande surprise, j'ai dû littéralement travailler en "Early Binding" et ajouter la référence à Word, sinon, impossible de juste exécuter la première ligne. (Message d'horreur de l'objet sans référence ou inexistant.) En fait, cela fonctionne quand même avec la référence et CreateObject, mais, de prime abord, cela n'a aucun sens. La procédure suivante "marche" sur ma machine. (Excel 2010, 64 bits.) Fais quand même attention au nom du dossier que j'ai dû modifier.


    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
    Sub word_avec_excel()
        'J'ai dû ajouter la référence à
        'Microsoft Word 14.0 Object Library
        'Sinon impossible de compiler
        Dim WordApp As Word.Application
        Dim WordDoc As Word.Document
        'Avec la référence cochée, Create Object ne sert plus à rien
        'Set WordApp = CreateObject("Word.Application")     '-- ouvre une session Word
        Set WordApp = New Word.Application
            WordApp.Visible = True
            Set WordDoc = WordApp.Documents.Add    '-- crée un nouveau document
            WordApp.Selection.TypeText "Test de fonctionnement"
        'J'ai changé le nom du dossier
        'parce que mon Windows 7 ne veut pas que mon VBA enregistre
        'mes fichiers dans la racine de mon disque dur.
        'Cela me rappelle la chanson avec le refrain "Je ne suis plus maître chez-moi,
        'c'est mon chien qui fait la loi."
        newName = "Test"
        WordApp.ActiveDocument.SaveAs Filename:="C:\temp\" & newName & ".docx"
        WordApp.Quit
    End Sub
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Malgré ce nouveau code cela ne fonctionne toujours pas. J'ai bien essayé également de changer la destination du fichier mais cela ne change rien...
    Merci quand même pour tes efforts !

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, pour ceux qui tomberaient sur ce sujet lors d'une recherche et se posent la question.

    Dans les versions récentes, la méthode ActivementDocument.SaveAs n'existe plus, il faut utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Save()
    Dim cHemin As String
    Dim mOndoc As String
     
    cHemin = "C:\Users\All Users\Desktop"
    mOndoc = "mon document"
     
    ActiveDocument.SaveAs2 FileName:=cHemin & "\" & mOndoc 
    MsgBox ("Votre fichier est sauvegardé dans le dossier suivant : " & cHemin & "\" & mOndoc )
     
    End Sub

    https://msdn.microsoft.com/fr-fr/lib...ffice.15).aspx

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2013, 20h34
  2. Générer un fichier word ou excel en php
    Par Taz_8626 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/05/2011, 09h57
  3. sauvegarde d'un fichier word dans excel
    Par buhrne dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2008, 15h42
  4. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34
  5. [VBA] Problème enregistrement mise en forme fichier word
    Par guenfood dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/06/2006, 14h10

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