Bonjour,
Tout est dans le titre.
Je sais ouvrir un document WORD,
Je voudrais écrire dedans avant de revenir sous access.
Merci
Bonjour,
Tout est dans le titre.
Je sais ouvrir un document WORD,
Je voudrais écrire dedans avant de revenir sous access.
Merci
Hello,
il suffit d'enregistrer une macro dans Word ...
Ensuite on fait de l'automation ... MyWordApp étant l'objet word
Code : Sélectionner tout - Visualiser dans une fenêtre à part Selection.TypeText "Hello World !"
Code : Sélectionner tout - Visualiser dans une fenêtre à part MyWordApp.Selection.TypeText "Hello World !"
bonjour,
je crois avoir oublié de dire que je suis sous ACCESS.
J'ouvre un doc WORD.
Je veux écrire dedans et revenir à ACCESS.
A quel momment et par quelle instruction je peux écrire dans le document WORD.
Merci
Non j'avais compris ...Envoyé par DurDur
Maintenant, il faudrait qu'on voie ton code source pour savoir ce qu'il manque pour que ça marche ...
je te renvoie à la FAQ et l'automation, ça devrait beaucoup t'aider
http://access.developpez.com/faq/?re...utomation+word
Pour avoir une idée, adapte ce bout de code, puis exécute le pas à pas.
Une fois le document ouvert, ajoute un espoin sur l'objet doc et explore la collection Paragraphs.
Les lignes de texte sont dans Paragraphs(n).Range.Text
Niveau caractère : Paragraphs(n).Range.Characters(m)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub testword() Dim doc As Word.Document, p As Word.Paragraph Set doc = GetObject("D:\Mes documents\Word\Test.doc") doc.Application.Visible = True 'affiche Word. Mais pas nécessaire For Each p In doc.Paragraphs Debug.Print p.Range.Text Next doc.Close End Sub
Bonjour CAFEINE,
Voilà mon code:
Avec ce code, il n'y a pas possibilité de compléter le doc. L'application continue dans la foulée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim madate As String madate = Right(DATE, 4) & Mid(DATE, 4, 2) & Left(DATE, 2) Dim wdapp As Word.Application Set wdapp = CreateObject("word.application") wdapp.Visible = True wdapp.Documents.Open "f:\marjorie\lettrefusion01.doc" ' ICI, JE VOUDRAIS POUVOIR COMPLETER LE DOCUMENT. wdapp.ActiveDocument.SaveAs "f:\marjorie\lettrefusion" & madate & ".doc" ' ET MAINTENANT FAIRE LE PUBLIPOSTAGE. wdapp.Run macroname:="fusion01" wdapp.ActiveDocument.Close wdapp.Application.Quit savechanges:=wddonotsavechanges Set wdapp = Nothing
Est ce qu'il y a un moyen, aprés ouverture du doc, de rester dans WORD et de ne revenir dans ACCESS pour terminer l'application que lorsqu'on a quitté WORD.
Ou alors, il faut scinder l'appli, l'écriture du doc d'un coté et le publipostage de l'autre.
Merci de vos réponses.
JC57
Bonjour,
Pour rester dans Word, il faudrait ne pas fermer Word.
Essaies de supprimer les lignes
Ainsi tu resteras dans Word, quitte à écrire un bout de code qui ira te rajouter des textes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 wdapp.ActiveDocument.Close wdapp.Application.Quit savechanges:=wddonotsavechanges Set wdapp = Nothing
Bon courage
Bonjour,
merci de ton aide, mais si on veut rester dans WORD, il faut aussi enlever
et lorsque le doc est sauvegardé, on revient dans ACCESS dans le FORM qui a lancé l'appli.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 wdapp.ActiveDocument.SaveAs "f:\marjorie\lettrefusion" & madate & ".doc" wdapp.Run macroname:="fusion01"
Dons pour faire le publipostage, je dois faire une autre COMMANDE.
Je pensais qu'il était possible de faire le tout sur une seule COMMANDE.
A+
Pour attendre la fermeture du doc Word dans Access j'ai écrit çaA+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim doc As Word.Document Dim docName As String Set doc = GetObject("D:\Mes documents\Word\PubliPstg.doc") doc.Application.Visible = True doc.Activate docName = doc.Name While Not (docName = "") ' attendre fermeture docName = "" ' du docmt Word On Error Resume Next docName = doc.Name On Error GoTo 0 DoEvents ' rend la main au système Wend ' Stop Set doc = Nothing
Bravo LedZeppII,
c'est exactement ce que je voulais.
J'ai ajouté mes lignes pour le publipostage et ça marche au poil.
Je vais peaufiner pour trouver le doc et faire une sauvegarde du doc modifié.
Encore Merci, je m'étais résolu de scinder cette appli en deux parties.
JC57
Content d'avoir pû t'aider.
Pour la suite (lancement du publipostage) j'ai enregistré une macro dans Word et cela donne :Les petits tracas que j'ai noté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Sub TestFusion() Dim doc As Word.Document, appWd As Word.Application Set doc = GetObject("D:\Mes documents\Word\PubliPstg.doc") doc.Activate ' J'ai ajouté une condition WHERE dans les options de fusion doc.MailMerge.DataSource.QueryString = _ "SELECT * FROM [Client] WHERE (([RsCP] LIKE '781*')) ORDER BY [RsCP]" ' Type de fusion With doc.MailMerge .Destination = wdSendToPrinter .MailAsAttachment = False .MailAddressFieldName = "" .MailSubject = "" .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With End With ' Lance la fusion Set appWd = doc.Application appWd.DisplayAlerts = wdAlertsNone doc.MailMerge.Execute False doc.Close wdDoNotSaveChanges On Error Resume Next ' au cas ou appWd ne serait plus valide appWd.DisplayAlerts = wdAlertsAll If appWd.Documents.Count = 0 Then appWd.Quit wdDoNotSaveChanges On Error GoTo 0 Set doc = Nothing Set appWd = Nothing End Sub
-Je n'arrive pas à empêcher la boite de dialogue "Imprimantes" pour la fusion.
-Malgrès wdDoNotSaveChanges, je n'arrive pas à fermer le document sans le sauvegarder
Pour le reste c'est OK.
Bonne continuation
Bonjour,
Je reviens sur ce programme qui a bien avancé grâce à LedZeppII.
J'aimerais que l'utilisateur puisse faire une requête lui même avant de lancer le publipostage, genre:
- Afficher la liste des champs (qui sont dans une requête) pour y faire un choix,
- Afficher les possibilités de comparaison (<,>,<>,=) et faire un choix,
- Entrer l'élément qui doit être comparé,
- Créer la requête SQL.
Je pense avoir vu quelque chose comme ça dans la FAQ, mais pas moyen de remettre la main dessus.
Si quelqu'un a une idée, je suis toujours preneur.
Merci.
JC57
Bonjour JC57,
Regardes ce tuto http://cafeine.developpez.com/access...echerchemulti/
Ca devrait te mettre sur la Voie.
A+
merci du tuyau, je bosse déjà dessus et j'ai trouvé un autre truc dans BIBLIOTHEQUE qui est pas mal.
ça marche bien dans l'appli, mais même copié comme tel dans mon appli, ça ne fonctionne pas, je cherche pourquoi et aprés je le modifie pou mon appli.
Encore merci.
JC57
Partager