Problème "d'enregistrer sous" d'Excel vers Word

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
R
Rékiss
Membre habitué
Membre habitué
Messages : 75
Appréciations reçues : 3
Inscrit le : 19 août 2013
Version d'Excel : Office 365

Message par Rékiss » 13 novembre 2019, 22:05

Bonjour à tous et merci déjà à qui pourra m'aider.

J'en suis à mes tout début en codage VBA (et autodidacte en péchant à droite à gauche donc soyez indulgents :oops: )et j'ai un souci.

Dans le but d'accélérer la modification d'un fichier Word de préparation de séquence (pour une instit primaire), j'ai créé le code suivant (Sous Office 2013):
Option Explicit

Sub Créer_ma_préparation()

Dim WordApp, WordDoc As Object
Dim i As Byte
Dim F As Worksheet
Dim Chemin
Dim MonFichier

    Set WordApp = CreateObject("word.application") 'ouvre l'applicaition Word
    Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\Test-Canevas-de-prépa-dune-séquence-dactivités.docx")  'ouvre le document Word
    Set F = Sheets("Calcul ne pas toucher !") 'renvoie à la feuille de calcul

    WordApp.Visible = False

        WordDoc.Bookmarks("Discipline").Range.Text = F.Cells(13, 1)
        WordDoc.Bookmarks("Séquence_activité").Range.Text = Cells(4, 2)
        WordDoc.Bookmarks("Objectif_séquence").Range.Text = Cells(5, 2)
        WordDoc.Bookmarks("Année").Range.Text = F.Cells(13, 2)
        WordDoc.Bookmarks("Nombre").Range.Text = F.Cells(43, 3)
        
    WordApp.Visible = True
    
    Chemin = "D:\Documents\Apprentissage_VBA\" 'chemin pour l'enregistrement
    MonFichier = Chemin & Range("B4").Value & ".doc" 'Nom du fichier à enregitrer
        ActiveWorkbook.SaveAs Filename:=MonFichier

End Sub
Ça remplace donc les signets Word dans le document sélectionné et ça fonctionne très bien ! en tout cas jusqu'à la partie
 WordApp.Visible = True
Mon problème vient des trois dernières lignes. En effet, J'aimerais qu'à la fin de la procédure mon document Word soit enregistré sous le nom repris dans la cellule "B4" (soit le titre de la séquence) et laisse mon fichier de base (avec les signets libres) tel quel pour pouvoir le réutiliser "à l'infini" sans devoir effacer les signets un par un ...

Pour l'instant, il me crée bien le document mais il m'est impossible de l'ouvrir. Il me dit que c'est utiliser par un autre utilisateur et si je demande une copie, ce sont des caractère illisibles qui apparaissent.

Où est le problème ? (De ce que je comprendrais, c'est parce qu'il s'agit d'un fichier excel enregistré sous une extension *.docx donc Word ne le reconnait pas mais je ne suis pas sur et je ne sais pas comment faire du coup)

J'ai plein d'autres trucs en tête pour encore améliorer ce que je voudrait faire mais une chose à la fois ^^

Merci déjà,

Rékiss
Avatar du membre
GVIALLES
Membre dévoué
Membre dévoué
Messages : 825
Appréciations reçues : 74
Inscrit le : 28 novembre 2017
Version d'Excel : 2016, 360
Téléchargements : Mes applications

Message par GVIALLES » 17 novembre 2019, 20:59

Bonjour Rékiss,

Peut-être juste modifier la ligne de code :
MonFichier = Chemin & Range("B4").Value & ".doc" 'Nom du fichier à enregitrer
par:
MonFichier = Chemin & F.Range("B4").Value & ".docx" 'Nom du fichier à enregistrer
Cordialement,

Gérard
R
Rékiss
Membre habitué
Membre habitué
Messages : 75
Appréciations reçues : 3
Inscrit le : 19 août 2013
Version d'Excel : Office 365

Message par Rékiss » 19 novembre 2019, 09:26

Salut et merci déjà de ton aide.

Non le fait de modifier l'extension en .docx ne fonctionne pas, je viens d'essayer, le fichier est corrompu ...
Avatar du membre
GVIALLES
Membre dévoué
Membre dévoué
Messages : 825
Appréciations reçues : 74
Inscrit le : 28 novembre 2017
Version d'Excel : 2016, 360
Téléchargements : Mes applications

Message par GVIALLES » 21 novembre 2019, 08:22

Bonjour Rékiss,

Ton code
ActiveWorkbook.SaveAs Filename:=MonFichier
réalise une sauvegarde de l'excel, pas du word.
Cordialement,

Gérard
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message