Automatiser Un MAcro pour des fichiers Excel.

jabrane

XLDnaute Nouveau
Bonjour Le forum;

J'ai réalisé un Macro sous excel , dont on fait l extraction des données depuis une feuilles excel dans une "template" word. Le macro fonctionne tres bien mais , pour chaque ligne du feuille excel, je doit passer par un message box intitulé " fichier en cours d 'utilisation": " Template.doc est verouillé pour modification par User1" dont je doit choisir : "ouvrir en lecture seul " pour le macro s excute et les données seront copiées dans la template et enregistré sous le nom de la 2 eme colonne de la ligne injectée.

1-Yat-il une solution ou piste pour que ce message ne soit pas afficher??
2-Peut on executer ce macro lorsque un fichier excel existe dans un dossier bien precis ?? En fait, j veut que ce macro ce lonce automatiquement a chzque création du fichier excel , meme si j ramene ce dernier par copier/coller, Lancer le macro sans ouvrir EXCEL .?? ya -t il une solution Sil vous plait??
 

camarchepas

XLDnaute Barbatruc
Re : Automatiser Un MAcro pour des fichiers Excel.

Bonjour,

La première solution serait de nous posté le fichier existant avec des données bidons et le fichier word , afin que l'on voit de quoi il en retourne .
Ensuite , il faudra prendre les problèmes un par un.
 

jabrane

XLDnaute Nouveau
Re : Automatiser Un MAcro pour des fichiers Excel.

bonjour camarchepas;

voiçi une partie de mon macro excel , j'ai réussi à executer le macro automatiquement apres chaque 1seconde de l ouverture du fichier excel ç l aide de la fonction "RUN' ; m


Dim TimeToRun
Sub Auto_Open()
Call scheduleJb
End Sub
Sub scheduleJb()
TimeToRun = Now + TimeValue("00:00:01")
Application.OnTime TimeToRun, "MacroAutoJB"
End Sub

Sub MacroAutoJB()
'nécéssite d'activer la référence Microsoft Word xx.x Object Library
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim oWdApp As Object 'Lancer Word
Dim i As Byte
Dim sChemin As String

On Error Resume Next
Dim nom As String

On Error Resume Next
Dim j As Integer
j = ActiveSheet.UsedRange.Rows.Count
Dim n As Byte
n = Cells(1, Columns.Count).End(xlToLeft).Column


If ActiveWorkbook.Name Like "Class*.xls" Then ' Condition selon les noms des fichiers excel

Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\User\My Documents\Class_fich.doc") 'ouvre document Word
Set oWdApp = CreateObject("Word.Application")
Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\User\My Documents\Class_fich.doc")

For i = 1 To n
WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) ' les signets du document Word sont nommés Sig1 , Sig2 , Sig3 ...
Next i
WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2) 'l entete du fichier WORD ou le nom du formulaire est attribuée a "Signet"

WordDoc.SaveAs Filename:=nom & ".doc" ' enregistre le nouveau doc word selon le nom de la 2 eme colonne du fichier excel
WordApp.Visible = False
End If
Next j
...

Mes besoins sont:
1/ est ce que je peut rendre le chemin des fichiers excel generuique , puisque ce macro va etre utilisé par multi utilisateurs dans differentes machines??
2/ Est ce que je peut exucuter ce macro SANS ouvrir les fichiers excel ??
3/ce macro enregistre les fichiers tyrétés sous un nom varible " nom.doc" , ce nom contient parfois des caracteres speciaux comme " : " , donc je trouve des problemes et le macro s arrete, est ce que je peut eliminer ces caracteres speciaux ou bien ya d autre solution ?
4/ Mon macro , si vous remarqué , enregistre chaque ligne du fichier excel dans in nouveau document word , et comme resultat j obtient n document word ouvert = n lignes du fichiers excel , alors que je veut vbien si c possible , enregistré ces lignes dans un Seul DOCUMENT mais des fenetres differentes ( ou des pages differentes, au lieu d ajouter un document on ajoute une nouvelle page ) ??
Merci beaucoup pour votre aide
 

Discussions similaires

Réponses
6
Affichages
196
Réponses
2
Affichages
282

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin