Chaud l'affaire

elpaulo Messages postés 135 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 12 août 2008 - 10 juin 2005 à 15:35
elpaulo Messages postés 135 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 12 août 2008 - 10 juin 2005 à 17:03
Bonjour, amis du vb.

J'ai un problème. Je travaille sur une application access entièrement codée en vba et donc sans macros.

J'ai créé un formulaire qui contient des textbox rattachées aux données de certaines tables. Ce sont des informations sur l'etat civil d'un salarie.

J'ai donc par exemple un label avec ecrit "Nom : " et a coté une textbox que j'ai appelée TxtNomSalarie. Jusque la, pas d'embrouille.

Mais voila, on m'a demandé de faire en sorte de créer un fichier word qui contiendra ces informations (en gros, ca doit etre du publipostage).

Il faut donc par exemple que j'ai sur mon fichier word :

"Monsieur" ici, le nom du salarie en question "a effectué" ici, la tache qu'il a effectuée etc, etc...


Donc voila, si vous pouvez m'aider a faire ca en vba, parce que c'est plutot tendu du string ce truc!
Merci d'avance.

5 réponses

lebender33 Messages postés 52 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 26 août 2009
10 juin 2005 à 16:01
Oyé, Oyé

Je connais pas bien le vba, moi je suis en vb.net mais ce qui est sure c'est que tu peut créer un fichier .doc en .net ca donne




'on ouvre le fichier en mode ajout des caractères au fichier
FileOpen(intfnum, "arf.txt", OpenMode.Append)

'on ecrit les lignes formatés correctement.
PrintLine(intfnum, "Monsieur " + nom, "a effectué le travail de " + nomdutravaille)

'on ferme le fichier
FileClose(intfnum)

Voila pour l'idée a toi de chercher dans l'api vba la bonne syntaxe
++
Bender
0
elpaulo Messages postés 135 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 12 août 2008
10 juin 2005 à 16:17
ouais, moi j'avais plus dans l'idée de créer d'abord un document-support avec tout le texte qui ne changera pas déja écrit, puis placer des signets aux endroits qui vont recevoir les données, et de programmer l'arrivée de ces données aux bons endroits en vba avec l'evenement clic du bouton imprimer que j'ai fait.

Est-ce une bonne idée? Est-ce réalisable? et comment?
0
peute51 Messages postés 37 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 21 juin 2007
10 juin 2005 à 16:25
voila il faut que tu es ton fichier word avec le publipostage cad le "nom" de ton salaries ou tu veux qu'il soit
il faut creer une requete ac les donnees que tu veux exporter:

'exportation des données vers un fichier excel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel3, "requete 1", "E:\requete etat.xls", True
'ouvre word
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
'ouverture du fichier compta.doc
.Documents.Open "E:\compta.doc"
'realise le publipostage a partir du fichier excel
.ActiveDocument.MailMerge.Destination = wdSendToNewDocument
.ActiveDocument.MailMerge.Execute
.ActiveDocument.SaveAs "E:\ordonnances dupliquees\compta2.doc"
'impression
.PrintOut
.Documents("E:\ordonnances dupliquees\compta.doc").Close
.Documents("E:\ordonnances dupliquees\compta2.doc").Close
.Visible = True
.quit
End With
Set wdApp = Nothing

'suppression du fichier compta2.doc
Kill "E:\ordonnances dupliquees\compta2.doc"
en esperant que ca peut t'aider
tchao
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
10 juin 2005 à 16:57
Entre temps j'ai fait ça, et comme je ne veux pas l'avoir fait pour rien, je le mets qd même

Public Sub test(a_NomSalarie As String, a_Tache As String)
'Dim wdApp As Word.Application
'Dim wdDoc As Word.Document
Dim wdApp As Object
Dim wdDoc As Object


'Ouvre Word
'Set wdApp = New Word.Application
Set wdApp = CreateObject("Word.Application")


'Ouvre un document en se basant sur le template doc1.dot
Set wdDoc = wdApp.Documents.Add("c:\Doc1.dot")
With wdApp.Selection
'Se positionne sur le signet Nom
.GoTo -1, "Nom"
'Ecrit le nom du salarie
.TypeText a_NomSalarie
'Idem avec la tache
.GoTo -1, "Tache"
.TypeText a_Tache
End With
'Enregistre (sans ajouter à la liste des derniers fichiers ouverts
wdDoc.SaveAs "c:\test.doc", , , , False
'Ferme le doc
wdDoc.Close
'Quitte word
wdApp.Quit
'Détruit les objets
Set wdApp = Nothing
Set wdDoc = Nothing
End Sub


Public Sub test2()
test "toto", "qdsf"
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elpaulo Messages postés 135 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 12 août 2008
10 juin 2005 à 17:03
merci, je crois qu'avec tout ca je devrais y arriver!
0
Rejoignez-nous