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

4 réponses

1 2
Avatar
Daniel.C
Mais voila,tu n'es plus dans le même cas de figure; mets simplement :
FileMailing = AppWord.Documents.Open(Chemin & "Doc2.doc")
qui ouvre ton fichier et :
If FileMailing = "" Then End
au cas ou le fichier n'est pas ouvert. Si le fichier est ouvert,
FileMailing contient le nom du fichier.
Daniel

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


Avatar
magic-dd
bon, daniel help !!!

je craque

voici mon code en entier

ca te sera peut etre plus utile car tu maitrise mieux que moi

merci du temps que tu consacres à mon problème


Private Sub CommandButton1_Click()

Dim onglet As Sheets
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path
Index = UserForm1.ComboBox1.Value

With Sheets(UserForm1.ComboBox1.Value)
.Activate
End With

Me.Hide

Sheets(Array(UserForm1.ComboBox1.Value)).Copy
ActiveSheet.Name = "publi"
ActiveWorkbook.Close Savechanges:=True, Filename:=chemin &
"Temp.xls"
ChDir ThisWorkbook.Path

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

If FileMailing = False Then End

' Ouverture de Word
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$] "
.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

docword.Activate
docword.Close Savechanges:úlse

' Affichage l'application Word
AppWord.Visible = True

'le document à sauvegarder étant le document actif :
Set docword = AppWord.ActiveDocument
docword.SaveAs chemin & "" & "NOTATIONS" &
UserForm1.ComboBox1.Value & ".doc"
docword.Close
AppWord.Quit
Set docword = Nothing
Set AppWord = Nothing

' Effacement du fichier temporaire crée spécialement pour la
fusion
Kill chemin & "temp.xls"

Application.ScreenUpdating = True

End Sub
Avatar
Daniel.C
Ca doit ressembler à çà :

Private Sub CommandButton1_Click()

Dim onglet As Sheets
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path
Index = UserForm1.ComboBox1.Value

With Sheets(UserForm1.ComboBox1.Value)
.Activate
End With

Me.Hide

Sheets(Array(UserForm1.ComboBox1.Value)).Copy
ActiveSheet.Name = "publi"
ActiveWorkbook.Close Savechanges:=True, Filename:=Chemin &
"Temp.xls"
ChDir ThisWorkbook.Path

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

'If FileMailing = False Then End

' Ouverture de Word
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = False 'True
FileMailing = AppWord.Documents.Open(Chemin & "Doc2.doc")
If FileMailing = "" Then End
Set docword = AppWord.ActiveDocument
NomBase = Chemin & "Temp.xls"
With docword.MailMerge
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel
Driver(*.xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;",
SQLStatement:="SELECT * FROM [publi$] "
.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

docword.Activate
docword.Close Savechanges:úlse

' Affichage l'application Word
AppWord.Visible = True

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

' Effacement du fichier temporaire crée spécialement pour la
fusion
Kill Chemin & "temp.xls"

Application.ScreenUpdating = True

End Sub

Daniel

bon, daniel help !!!

je craque

voici mon code en entier

ca te sera peut etre plus utile car tu maitrise mieux que moi

merci du temps que tu consacres à mon problème


Private Sub CommandButton1_Click()

Dim onglet As Sheets
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path
Index = UserForm1.ComboBox1.Value

With Sheets(UserForm1.ComboBox1.Value)
.Activate
End With

Me.Hide

Sheets(Array(UserForm1.ComboBox1.Value)).Copy
ActiveSheet.Name = "publi"
ActiveWorkbook.Close Savechanges:=True, Filename:=chemin &
"Temp.xls"
ChDir ThisWorkbook.Path

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

If FileMailing = False Then End

' Ouverture de Word
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$] "
.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

docword.Activate
docword.Close Savechanges:úlse

' Affichage l'application Word
AppWord.Visible = True

'le document à sauvegarder étant le document actif :
Set docword = AppWord.ActiveDocument
docword.SaveAs chemin & "" & "NOTATIONS" &
UserForm1.ComboBox1.Value & ".doc"
docword.Close
AppWord.Quit
Set docword = Nothing
Set AppWord = Nothing

' Effacement du fichier temporaire crée spécialement pour la
fusion
Kill chemin & "temp.xls"

Application.ScreenUpdating = True

End Sub


Avatar
magic-dd
Daniel

tu es vraiment un as

ca fonctionne parfaitement

je vais comparer en imprimant ton code et le mien pour mieux
comprendre

milles merci encore une fois
1 2