[RESOLU] macro pour enregister un fichier WORD

loiclass

XLDnaute Occasionnel
Bonjour,

J'ai un petit soucis avec une macro dans laquelle je cherche à enregistrer un fichier word.

Sub Word()

For i = 2 To 10

Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.documents.Open("C:\Documents and Settings\loic\Mes documents\test Publipostage\test.dot")

WordApp.Visible = False

WordDoc.Bookmarks("date").Range.Text = Sheets("Feuil3").Range("A" & i)
WordDoc.Bookmarks("semaine").Range.Text = Sheets("Feuil3").Range("C" & i)
WordDoc.Bookmarks("format").Range.Text = Sheets("Feuil3").Range("G" & i)

WordApp.Visible = True

D = Sheets("Feuil3").Range("G" & i).Value

docWord.SaveAs Filename:="C:\Documents and Settings\loic\Mes documents\test Publipostage\test & D.doc"

Next

End Sub

En supprimant la partie ci dessous du code, ça m'ouvre bien tous mes fichiers.

D = Sheets("Feuil3").Range("G" & i).Value

docWord.SaveAs Filename:="C:\Documents and Settings\loic\Mes documents\test Publipostage\test & D.doc"

Cette partie est fausse mais je ne sais pas comment la modifier.

Si quelqu'un pouvait m'aider, ça serait sympa.

Merci
 

loiclass

XLDnaute Occasionnel
Re : macro pour enregister un fichier WORD

ok,

voici mon fichier excel complet (la macro en question est la macro WORD, par la suite je l'intégrerai dans COPIE).
Je joint également le modèle WORD.

Je veux que le nom du fichier doc soit test & "valeur en A&i".doc.

Merci de votre aide.
 

Pièces jointes

  • test.xls
    49 KB · Affichages: 47
  • test.xls
    49 KB · Affichages: 62
  • test.xls
    49 KB · Affichages: 64
  • test.doc
    27.5 KB · Affichages: 52
  • test.doc
    27.5 KB · Affichages: 64
  • test.doc
    27.5 KB · Affichages: 68
C

Compte Supprimé 979

Guest
Re : macro pour enregister un fichier WORD

Re,

Voilà, tout de suite on comprend mieux ;)

Tes cellules utilisées pour le nom contiennent des slash "/", tu ne peux pas les utiliser dans el nom de fichier

Voici le code correcte
VB:
Sub Word()
  Dim sPath As String, sNomFic As String
  ' Définir le chemin source et de destination
  sPath = "C:\Documents and Settings\loic\Mes documents\test Publipostage\"
  ' Créer une instance de word
  Set WordApp = CreateObject("word.application")
  ' Faire la boucle à ce niveau
  For i = 2 To 10
    Set Worddoc = WordApp.documents.Open(sPath & "test.dot")
    WordApp.Visible = False
    Worddoc.Bookmarks("date").Range.Text = Sheets("Feuil3").Range("A" & i)
    Worddoc.Bookmarks("semaine").Range.Text = Sheets("Feuil3").Range("C" & i)
    Worddoc.Bookmarks("format").Range.Text = Sheets("Feuil3").Range("G" & i)
    WordApp.Visible = True
    ' Il faut remplacer les slash par des tirets sinon Word ne comprendras pas
    sNomFic = Replace(Sheets("Feuil3").Range("A" & i).Value, "/", "-") & _
              Replace(Sheets("Feuil3").Range("G" & i).Value, "/", "-")
    ' Enregistrer le fichier avec el nom
    Worddoc.SaveAs Filename:=sPath & "Test " & sNomFic & ".doc"
  Next
End Sub

Je ne l'ai pas testé, mais ce devrait être bon

A+
 

loiclass

XLDnaute Occasionnel
Re : macro pour enregister un fichier WORD

J'ai une dernière question.
Si je veux utiliser les fichiers créés et les mettre en pièce jointe, comment je doit faire appel à ces fichier?

J'ai déjà mon code prêt à fonctionner, mais je ne sais pas quel chemin mettre.

Sub Word2()
Dim sPath As String
Dim sNomFic As String

' Définir le chemin source et de destination
sPath = "C:\Documents and Settings\loic\Mes documents\test Publipostage\"

' Créer une instance de word
Set WordApp = CreateObject("word.application")

' Faire la boucle à ce niveau

DernLigne3 = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To DernLigne3
Set Worddoc = WordApp.documents.Open(sPath & "test.dot")
WordApp.Visible = False
Worddoc.Bookmarks("date").Range.Text = Sheets("Feuil3").Range("A" & i)
Worddoc.Bookmarks("semaine").Range.Text = Sheets("Feuil3").Range("C" & i)
Worddoc.Bookmarks("format").Range.Text = Sheets("Feuil3").Range("G" & i)
WordApp.Visible = True

' Il faut remplacer les slash par des tirets sinon Word ne comprendras pas
sNomFic = Replace(Sheets("Feuil3").Range("A" & i).Value, "/", "-") & _
Replace(Sheets("Feuil3").Range("G" & i).Value, "/", "-")

' Enregistrer le fichier avec el nom
Worddoc.SaveAs Filename:=sPath & "Test " & sNomFic & ".doc"

'ouvrir mail
Set oOutlook = CreateObject("Outlook.Application")
Set oNewMail = oOutlook.CreateItem(olMailItem)

With oNewMail
.Attachments.Add "chemin du fichier créé précedemment"
.Recipients.Add "@.fr"
.Subject = "demande"
.Body = "texte du message"
.display
End With

Next
End Sub

Merci
 
C

Compte Supprimé 979

Guest
Re : macro pour enregister un fichier WORD

Re,

VB:
Sub Word2()
  Dim sPath As String
  Dim sNomFic As String
  ' Définir le chemin source et de destination
  sPath = "C:\Documents and Settings\loic\Mes documents\test Publipostage\"
  ' Créer une instance de word
  Set WordApp = CreateObject("word.application")
  ' Créer uns instance d'Outlook
  Set oOutlook = CreateObject("Outlook.Application")
  ' Faire la boucle à ce niveau
  DernLigne3 = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row
  For i = 2 To DernLigne3
    Set Worddoc = WordApp.documents.Open(sPath & "test.dot")
    WordApp.Visible = False
    Worddoc.Bookmarks("date").Range.Text = Sheets("Feuil3").Range("A" & i)
    Worddoc.Bookmarks("semaine").Range.Text = Sheets("Feuil3").Range("C" & i)
    Worddoc.Bookmarks("format").Range.Text = Sheets("Feuil3").Range("G" & i)
    WordApp.Visible = True

    ' Définir le nom du fichier de destination
    ' Il faut remplacer les slash par des tirets sinon Word ne comprendras pas
    sNomFic = "Test " & Replace(Sheets("Feuil3").Range("A" & i).Value, "/", "-") & _
              Replace(Sheets("Feuil3").Range("G" & i).Value, "/", "-") & ".doc"

    ' Enregistrer le fichier avec le chemin + le nom
    Worddoc.SaveAs Filename:=sPath & sNomFic

    ' Ne pas oublier de le fermer
    Worddoc.Close

    'ouvrir mail
    Set oNewMail = oOutlook.CreateItem(olMailItem)
    With oNewMai
      .Attachments.Add sPath & sNomFic
      .Recipients.Add "@.fr"
      .Subject = "demande"
      .Body = "texte du message"
      .Display
      ' ou directement
      ' .Send
    End With
  Next
End Sub

A+
 

loiclass

XLDnaute Occasionnel
Re : macro pour enregister un fichier WORD

Bonjour BrunoM45,

J'ai remodifiè un peu le code et ça fonctionne.
La seule chose qui me gène c'est qu'à la fin de la procédure, il me laisse word ouvert (sans aucun document ouvert).

J'ai essayé d'ajouter WordApp.close, mais ça ne fonctionne pas.

As tu une idée.

Merci.
 

loiclass

XLDnaute Occasionnel
Re : [RESOLU] macro pour enregister un fichier WORD

Bonjour BRUNOM45,

J'aurais encore besoin de votre aide sur ce post.

Je souhaite intégrer un rappel automatique pour chaque mail envoyé (une date de rappel sera présente en colonne J, de la feuille 3).
Ce rappel ne doit pas se faire sur mon OUTLOOK, mais sur celui du ou des destinataires du mail.

Je pense devoir utiliser:

.DueDate = "date"
.ReminderSet = True
.Save
... etc

Mais je ne sais pas où les intégrer.

Merci de votre aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 010
Membres
103 090
dernier inscrit
Createlier