Automatiser un Macro sous Excel

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??

Bonjour,

1°) En principe tu devrais pouvoir ouvrir le document Word directement en "Lecture seule" ce qui éviterait ce message.

2°) Avant de modifier ce document tu dois le sauver sous autre nom, sinon ce serra annuler.

Faire les modif et le sauver avec les modif.

3°) Tu peu faire un classeur perso ou Xla qui sera chargé directement avec Excel, la macro sera ainsi disponible tout le temps.

Ce ne sont que des pistes, sans savoir exactement comment tu procède difficile d'en dire plus.

A+

Bonjour lermite et merci pour votre repznse;

1) j'ai essayé et sa maeche parfaittement .Merci

2) et 3): j'ai crée un macro sous PERSO.XLS mais mon probleme , c que je veut éxecuter le MACRO sans ouvrir le fichier excel ..!! est-il possible??

4) une autre question , svp, mon MACRO parcour la feuille excel a l'ouverture , ligne par ligne a l'aide dune boucle, et pour chaque ligne ; il crée un nouveau document word contenant un template bien precis , injecte les données de la lignedans cette template et puisn " enregistrer-sous" le document crée . ce que je veut faire , c'est de rassembler les document crée ( un document= une ligne de la feuille excel ) dans un seul doc . est-il possible ?? merci

EDIT:

Si tu met le classeur Perso dans le répertoire d'Excel il sera charger en même temps qu'Excel.

Qu'est ce que tu appel "un template" ?

Mettre toutes les lignes dans un seul fichier me parait faisable, à la place de créer un nouveau document, mémoriser dans une variable texte.. ou autre ?

Ce serait plus évidant si tu postais un exemple de ton classeur sans donnée confidentielle.

A+

Bonjour lermite et merci encore une fois;

voici une partie de mon MAcro VB

Dim j As Integer

j = ActiveSheet.UsedRange.Rows.Count 'Compter le nombre des lignes

For j = 2 To j

Dim n As Byte

n = Cells(1, Columns.Count).End(xlToLeft).Column

Dim nom As String

nom = Sheets(1).Cells(j, 2)

Set WordApp = CreateObject("word.application")

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

Tu ouvre une nouvelle instance de word à chaque document mais tu ne la ferme pas... risque de saturation de la mémoire si beaucoup de lignes.

Je ne suis pas familier du VBA de Word, c'est possible de mettre plusieurs lignes l'une en dessous de l'autre sur un signet ?

Comment veux-tu regrouper toutes les données sur un seul document ? donne un exemple.

"c'est possible de mettre plusieurs lignes l'une en dessous de l'autre sur un signet ?"

""

Chaque signet et assosier a une colonne bien precise , et comme c ligne par ligne que le macro parcour le fichier excel , chaque cellule va etre copiée dans un signet du fichier word.

"Comment veux-tu regrouper toutes les données sur un seul document ? donne un exemple."

""

J'ai pa pu vous exporter un exemple .xls ou .doc, probleme de securité sur mon PC mais j essaye de vous expliqué avec details le truc:

l utilisateur reçcoi des emails contenants des fichiers excel , chaque fichier.xls, contient des ligne de données , des informations specifiques pour des vehicules , ( Marque, Type, puissance, couleur, Prix...) Ensuite, le macro doit injecter ( copiée) ces données , ligne par ligne ; pour but de faire une formulaire pour chaqu'une des vehicule , Le macro que je vous a mis precedement fonctionne tres bien , mais, pour chaque vehicule il crée un nouveau document word alors que je voudrais assembler les formulaires des vehicules ,enregistrées dans le meme fichier excel, dans un meme fichier word.

Si je comprend bien ?

Chaque document Word ne contient qu'une seule ligne ?

Tu voudrais que toutes ces lignes soient l'une en dessous de l'autre sur un même document ?

J voulais dire par l'assemblage; c que de créer des fenetres dans un meme document!! Au lieu de crer a chaque fois un document word , on veut créer dans le meme document word une nouvelle fenetre ; d ou on obtient pour chaque ligne du fiochier excel , une fentre dans le document word . Merci pour votre comprehension .


"""Chaque document Word ne contient qu'une seule ligne ?""

Oui c exactement c que j'ai arrivé a faire , mais c que je voudrais c'est au lieu de crer un nouveau document pour chaque ligne, On crée une nouvelle fenetre dans le meme document word.

Par exemple; mon fichier excel contient 3 lignes ( 3 vehicules); pour chaque ligne, le macro va créer un nouveau document word contanant la formulaire de la vehicule X !! ce qu'on doit faire , c que modifier ce bou de code VB pour qu'on obtient a partir de ce fichier excel ( 3 lignes ) 3 fenetres dans un meme document word !!

Je commence à comprendre ce que tu veux.

Plusieurs pages ça va pas aller avec des signets.

Possible avec des tabulations.

C'est obligatoire d'avoir ça sur Word ? sur des feuilles Excel ça irait pas ?

Bonjour;

C'est obligatoire d'avoir ça sue word puisque c 'est l'objectif a atteindre

Bon je vais faire des reherches sur les tabulations puisque je connais pas tro les macro donc j'ai travaillé avec les signets

Merci encore une fois

Rechercher des sujets similaires à "automatiser macro"