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

erreur de syntaxe

14 réponses
Avatar
magic-dd
bonjour

dans ma macro voila ce que j'ai

Index = UserForm1.ComboBox1.Value

ce qui me donne le nom inscrit dans mon combobox

a la fin de ma macro, il m'a ouvert un doc word

ensuite je lui demande d'enregistrer ce nouveau fichier word avec la
commande suivante

DocWord.Close savechanges:=True, Filename:=(UserForm1.ComboBox1.Value
& .doc)

cependant il plante dans le deroulement de la macro

merci de m'aider sur cette syntaxe

cordialement

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Peut-être :
DocWord.Close savechanges:=True, Filename:=(UserForm1.ComboBox1.Value
& ".doc")
Cordialement.
Daniel

bonjour

dans ma macro voila ce que j'ai

Index = UserForm1.ComboBox1.Value

ce qui me donne le nom inscrit dans mon combobox

a la fin de ma macro, il m'a ouvert un doc word

ensuite je lui demande d'enregistrer ce nouveau fichier word avec la
commande suivante

DocWord.Close savechanges:=True, Filename:=(UserForm1.ComboBox1.Value
& .doc)

cependant il plante dans le deroulement de la macro

merci de m'aider sur cette syntaxe

cordialement


Avatar
magic-dd
merci

j'ai bien essayé cela mais ça ne fonctionne pas
Avatar
Daniel.C
Tu ne peux pas mettre le nom du fichier avec "close"; mets :

DocWord.SaveAs UserForm1.ComboBox1.Value & ".doc"
DocWord.close

Daniel

merci

j'ai bien essayé cela mais ça ne fonctionne pas


Avatar
magic-dd
bonsoir

la syntaxe est bonne mais cela renomme mon fichier word qui servait au
publipostage

le but de ma demande est d'enregistrer le nouveau document issu du
publipostage dans le meme dossier que mon fichier excel avec le nom du
combobox

voici donc la fin de mon code depuis le publipostage

Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = False 'True
Set docword = AppWord.Documents.Open(FileMailing)
NomBase = Chemin & "Temp.xls"
With docword.MailMerge

.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver
(*.xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;",
SQLStatement:="SELECT * FROM [publi$] "

'Spécifie la fusion vers un nouveau document (wdSendToPrinter=
Vers l'imprimante)

.Destination = wdSendToNewDocument

'Prend en compte l'ensemble des enregistrements

With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With

'Exécute l'opération de publipostage

.Execute Pause:úlse
End With

' Activation du document principal de Publipostage et fermeture

docword.Activate
docword.Close savechanges:úlse

' Affichage l'application Word

AppWord.Visible = True

Set docword = Nothing
Set AppWord = Nothing

------------------------------------------------------ a ce moment
reste mon doc word publiposté qui se nomme lettreType 1

j'aimerai qu'il garde la syntaxe DocWord.SaveAs
UserForm1.ComboBox1.Value & ".doc"
DocWord.close


' Activation de l'onglet
' Effacement du fichier temporaire crée spécialement pour la
fusion
Kill Chemin & "temp.xls"
Application.ScreenUpdating = True
end sub


merci de votre aide
Avatar
Daniel.C
Vraiment au nez, car je ne peux pas tester :

Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = False 'True
Set docword = AppWord.Documents.Open(FileMailing)
NomBase = Chemin & "Temp.xls"
With docword.MailMerge

.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver
(*.xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;",
SQLStatement:="SELECT * FROM [publi$] "

'Spécifie la fusion vers un nouveau document (wdSendToPrinter Vers l'imprimante)

.Destination = wdSendToNewDocument

'Prend en compte l'ensemble des enregistrements

With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With

'Exécute l'opération de publipostage

.Execute Pause:úlse
End With

' Activation du document principal de Publipostage et fermeture

docword.Activate
docword.Close savechanges:úlse

' Affichage l'application Word

AppWord.Visible = True

'le document à sauvegarder étant le document actif :
Set DocWord = WdApp.activedocument
DocWord.SaveAs UserForm1.ComboBox1.Value & ".doc"
DocWord.close
Set DocWord = Nothing
Set WdApp = Nothing

Daniel

Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = False 'True
Set docword = AppWord.Documents.Open(FileMailing)
NomBase = Chemin & "Temp.xls"
With docword.MailMerge

.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver
(*.xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;",
SQLStatement:="SELECT * FROM [publi$] "

'Spécifie la fusion vers un nouveau document (wdSendToPrinter > Vers l'imprimante)

.Destination = wdSendToNewDocument

'Prend en compte l'ensemble des enregistrements

With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With

'Exécute l'opération de publipostage

.Execute Pause:úlse
End With

' Activation du document principal de Publipostage et fermeture

docword.Activate
docword.Close savechanges:úlse

' Affichage l'application Word

AppWord.Visible = True

Set docword = Nothing
Set AppWord = Nothing


Avatar
magic-dd
bonjour daniel et merci

pour un truc à vu de nez je dis chapeau,c'est tout bon

juste change Wdapp par Appwd,mais rien de grave.

en revanche, pourquoi m'enregistre t il mon document dans le dossier
"mes documents"

pourquoi ne pas le laisser dans l'activeworkbook.path

et à la fin l'application word ne se ferme pas aussi

merci de ton aide
Avatar
Daniel.C
Bonjour.
Remplace la fin de la macro par :

'le document à sauvegarder étant le document actif :
Set DocWord = AppWord.activedocument
DocWord.SaveAs Chemin & UserForm1.ComboBox1.Value & ".doc"
DocWord.Close
AppWord.Quit
Set DocWord = Nothing
Set AppWord = Nothing

Daniel


bonjour daniel et merci

pour un truc à vu de nez je dis chapeau,c'est tout bon

juste change Wdapp par Appwd,mais rien de grave.

en revanche, pourquoi m'enregistre t il mon document dans le dossier
"mes documents"

pourquoi ne pas le laisser dans l'activeworkbook.path

et à la fin l'application word ne se ferme pas aussi

merci de ton aide


Avatar
magic-dd
RE bonjour daniel

merci pour ton aide très précieuse

cela a fonctionné parfaitement

j'ai juste rajouté un "" pour le mettre dans un autre dossier

euh si je peux me permettre comment lui dire de prendre l'unique
fichier word compris dans le dossier qui est ma base pour mon
publipostage

car apres cette ligne

FileMailing = Application.GetOpenFilename("Fichiers
Word,*.doc", , , , False)

il m'ouvre l'explorateur et je dois aller chercher mon document
manuellement

donc si ca pouvait aller le chercher dans chemin & MonFichier.doc ca
serait plus facile pour l'utilisateur final

merci
Avatar
Daniel.C
Bonjour.
Mets :
AppWord.Documents.Open Chemin & &"monfichier.doc"
Daniel


RE bonjour daniel

merci pour ton aide très précieuse

cela a fonctionné parfaitement

j'ai juste rajouté un "" pour le mettre dans un autre dossier

euh si je peux me permettre comment lui dire de prendre l'unique
fichier word compris dans le dossier qui est ma base pour mon
publipostage

car apres cette ligne

FileMailing = Application.GetOpenFilename("Fichiers
Word,*.doc", , , , False)

il m'ouvre l'explorateur et je dois aller chercher mon document
manuellement

donc si ca pouvait aller le chercher dans chemin & MonFichier.doc ca
serait plus facile pour l'utilisateur final

merci


Avatar
magic-dd
bonjour daniel

j'ai bien remplacé par ce que tu m'a dis mais j'ai une erreur
d'execution 9

variable objet ou variable de bloc with non definie

avant j'avais ça

Dim AppWord As Word.Application

'FileMailing = Application.GetOpenFilename("Fichiers
Word,*.doc", , , , False)

If FileMailing = False Then End


et apres modif j'ai inscrit ça


Dim AppWord As Word.Application

FileMailing = AppWord.Documents.Open(Chemin & "Doc2.doc")

If FileMailing = False Then End
bref ca bug et heureusement qu'il fait beau car la je patauge :)

merci
1 2