Microsoft 365 Macro Excel qui n'arrive pas à enregistrer un doc Word

Etoto

XLDnaute Barbatruc
Hello à tous,

J'ai ce code VBA sur Excel qui fonctionne bien :
VB:
Sub CopieWord2()

Dim Chemin As String, ajd As Date, WordApp As Object, WordDoc As Object 'On précise que la variable chemin est du texte et les deux autres variables un objet

Sheets("Extraction Sujet").Activate 'On va sur la feuille Extraction Sujet
Chemin = [I1] & "Word - NE PAS TOUCHER\" 'Le chemin est celui de la cellule I1 mais dans le sous-dossier Word
ajd = [B1]

Sheets("PV fini V2").Activate 'On va sur la feuille PV fini V2
Range("A1:B205").Copy 'On copie la sélection

On Error Resume Next 'Si Word n'est pas ouvert
Set WordApp = GetObject(, "Word.Application") 'On active Word
If Err.Number = 429 Then
    Err.Clear
    Set WordApp = CreateObject("Word.Application") 'Crée l'application Word s'il n'est pas ouvert
End If

WordApp.Visible = True 'Rendre Word Visible
WordApp.Activate 'Activer Word

Set WordDoc = WordApp.Documents.Add 'Crée un nouveau document Word
WordApp.Selection.Paste 'On colle sur Word
WordDoc.SaveAs Chemin & "\Pv_Fini" & "_" & ajd & ".docx"
WordApp.Run "NewMacros.Convert_text" 'On lance le code sur Word
Set WordApp = Nothing
Set WordDoc = Nothing
'On vide le cache

End Sub

Il copie des données sur Word et c'est super mais je comprend pas pourquoi la ligne qui est sensé enregistrer le document Word ne fonctionne tout simplement pas. Il s'appelle toujours "Document 1" et son chemin est inexistant. Pourtant le chemin fonctionne bel et bien.

Le contenu de la cellule I1 est : C:\Users\toto\popo\tata\
La date en B1 est : 23.04.22
La macro qui est lancée dans Word est celle-ci :
VB:
Sub Convert_text()

    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.Rows.ConvertToText Separator:=wdSeparateByTabs, NestedTables:= _
        True
End Sub

Arriveriez-vous à me dire le problème ?

Je m'étais inspiré de ce site :

Infos :
Microsoft 365 entreprise
Version : 2202
Build : 14931.20764
64bits
 
Dernière édition:
Solution
Ca y est je l'ai.
C'est ta date qui pose problème, tu ne peux pas avoir de "." dans le nom d'un fichier, car Windows l'utilise comme séparateur de l'extension du fichier.
Remplace les "." par des "-" dans ajd et ça devrait fonctionner :)

Bien à toi,

Etoto

XLDnaute Barbatruc
Bonjour,

C'est WordDoc qu'il faut sauvegarder, pas WordApp.
Concrètement, WordApp représente l'application de fond Microsoft Word. Sauf que tu enregistres le document Word/le fichier Word, pas l'application ;)

Bonne journée,
Ouais, je sais, avant c'était WordDoc mais ça fonctionnait pas non plus, je me suis dit que j'avais confondu les deux mais ça change en rien le résultat.

J'avais aussi tenté d'échanger de ligne le code qui enregistre le fichier et celui qui lance la macro Word en pensant que les deux macros actives pouvaient faire un problème, je sais pas.
 

xUpsilon

XLDnaute Accro
Je remarque que tu ne remets jamais à 0 le Error Handler (tu insères On Error Resume Next, ce qui désactive les messages d'erreur jusqu'à la fin de l'exécution de la macro).
Rajoute On Error GoTo 0 après ton Set WordApp et regarde là où ça plante.
 

Etoto

XLDnaute Barbatruc
Etonnant, je vois pas l'erreur dans le nom :

Capture.PNG
 
Dernière édition:

xUpsilon

XLDnaute Accro
Ca y est je l'ai.
C'est ta date qui pose problème, tu ne peux pas avoir de "." dans le nom d'un fichier, car Windows l'utilise comme séparateur de l'extension du fichier.
Remplace les "." par des "-" dans ajd et ça devrait fonctionner :)

Bien à toi,
 

Etoto

XLDnaute Barbatruc
Ca y est je l'ai.
C'est ta date qui pose problème, tu ne peux pas avoir de "." dans le nom d'un fichier, car Windows l'utilise comme séparateur de l'extension du fichier.
Remplace les "." par des "-" dans ajd et ça devrait fonctionner :)

Bien à toi,
Merci beaucoup, il existe une fonction vba qui fait comme la fonction Excel SUBSTITUE qui remplacerait tous les "." par un "-" ?
 

Discussions similaires

Statistiques des forums

Discussions
312 102
Messages
2 085 304
Membres
102 857
dernier inscrit
Nony1931