Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1167 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme controle Word via Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme controle Word via Excel

n°1778390
Moundir
Posté le 27-08-2008 à 16:12:54  profilanswer
 

Bonjour
 
je souhaiterai pouvoir controler un Objet dans deux fonctions differentes:
 
 

Code :
  1. Call Wd
  2. Call FillWord ( ?????)
  3. Function Wd() As Object
  4. Set Wd = New Word.Application
  5. Wd.Visible = True
  6. Wd.Documents.Open Filename:="S:\OPTION\TRS Template.doc" ' open template
  7. Wd.Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=10 'go to line10
  8. End Function


 
 
je souhaiterai que la fonction FillWord permette d ecrire une phrase dans l'objet cree par la fonction Wd
 
 
 
merci de votre aide
 

mood
Publicité
Posté le 27-08-2008 à 16:12:54  profilanswer
 

n°1778428
Moundir
Posté le 27-08-2008 à 17:00:25  profilanswer
 

up

n°1778789
dreameddea​th
Posté le 28-08-2008 à 00:30:31  profilanswer
 

1) Erreur sur la ligne 1. "Call wd" n'est pas bon en soit avec une fonction qui rend donc le fichier word
 
2) La fonction FillWord (et je suppose que ça a plutôt l'air de devoir être un "sub" ) est appelée par comment?
 
sinon un truc du style

Code :
  1. Dim word_obj as Word.Application
  2. Set word_obj = wd()
  3. Call FillWord(wd,"totototo" )
  4. Sub FillWord(wd as Word.Application, msg as string)
  5. wd.selection.range.insertbefore(msg)
  6. End Sub


 
Je ne suis pas expert en VBA word, donc je ne suis pas sur que insertbefore soit la meilleur méthode, mais ça doit marcher

n°1778849
Moundir
Posté le 28-08-2008 à 09:22:27  profilanswer
 

bon, je n ai pas ete assez clair:
 
ce que je veux faire exactement
 
-Appeler une fonction qui ouvre une session word et qui ouvre le fichier C:\fichier.doc
-Appeler une fonction qui modifie le contenu de fichier.doc
-Sauver le nouveau fichier cree sous le nom: C:\fichierNEW.doc
 
En gros, je n arrive pas a recuperer la session word ouverte lors de la premiere fonction. Je sais comment faire le reste.

n°1779224
Moundir
Posté le 28-08-2008 à 16:00:13  profilanswer
 

up

n°1779400
Moundir
Posté le 28-08-2008 à 19:20:37  profilanswer
 

up

n°1779533
dreameddea​th
Posté le 29-08-2008 à 00:52:08  profilanswer
 

Le code que j'ai fourni ne t'aide en rien?
 
Sinon, je n'ai toujours pas compris ce que tu appelles "appeler une fonction" : qui (ou quoi) appelle la(es) fonction(s) en question

n°1779562
Moundir
Posté le 29-08-2008 à 08:50:31  profilanswer
 

dreameddeath a écrit :

Le code que j'ai fourni ne t'aide en rien?
 
Sinon, je n'ai toujours pas compris ce que tu appelles "appeler une fonction" : qui (ou quoi) appelle la(es) fonction(s) en question


 
Ben, avoir une procedure principale qui lance les fonctions en utilisant: Call Fonction1

n°1779972
Moundir
Posté le 29-08-2008 à 13:57:02  profilanswer
 

up

n°1780343
Moundir
Posté le 30-08-2008 à 15:56:27  profilanswer
 

up

mood
Publicité
Posté le 30-08-2008 à 15:56:27  profilanswer
 

n°1780482
Moundir
Posté le 31-08-2008 à 13:05:06  profilanswer
 

up

n°1780510
86vomito33
Posté le 31-08-2008 à 14:28:49  profilanswer
 

+1 avec dreameddeath
 
faudrait peut être utilise
 

Code :
  1. Public wd As Application


 
et mets tout tes codes pour y voir plus clair


Message édité par 86vomito33 le 31-08-2008 à 14:29:02
n°1780790
Moundir
Posté le 01-09-2008 à 01:16:03  profilanswer
 

Code :
  1. Sub ExportPayer()
  2. Call CopyExcel
  3. Call PasteExcel_Sheets_P_vs_R
  4. Call Doc_Payer
  5. Call PrintPDF(Wd)
  6. End Sub
  7. Sub CopyExcel()
  8. Sheets("TRS" ).Select
  9. Range("A1:B45" ).Select
  10. Selection.Copy
  11. End Sub
  12. Sub PasteExcel_Sheets_P_vs_R()
  13. Sheets("P vs R" ).Select
  14. Range("A1" ).Select
  15. Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  16. Sheets("P vs R" ).Select
  17. Range("A1:B45" ).Select
  18. Selection.Copy
  19. Sheets("TRS" ).Activate
  20. End Sub
  21. Sub Doc_Payer()
  22. Dim Wd As Object
  23. Set Wd = New Word.Application
  24. Wd.Visible = True
  25. Set DocWord = Wd.Documents.Open("C:\Documents and Settings\Administrateur\Mes documents\TRS\TRS_Template.doc", ReadOnly:=True)
  26. ' Fermeture de Word 'Wd.Application.Quit
  27. Wd.Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=10, Name:="" 'go to line10
  28. Wd.Selection.Paste
  29. 'Wd.ActiveDocument.SaveAs Filename:=Get_Path & "\" & "LCM TC TRS " & Sheets("TRS" ).Range("Bloomberg_ticker" ) & Duration & " [" & _
  30. SNP & " vs " & SNR & "]" & ".doc"
  31. Wd.ActiveDocument.SaveAs Filename:="C:\Documents and Settings\Administrateur\Mes documents\TRS" & "\" & "LCM TC TRS " & Sheets("TRS" ).Range("Bloomberg_ticker" ) & Duration & " [" & _
  32. SNP & " vs " & SNR & "]" & ".doc"
  33. End Sub
  34. Sub PrintIT(Wd As Object)
  35.     ActivePrinter = "Brother HL-2030 series"
  36.     Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
  37.         wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
  38.         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
  39.         False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
  40.         PrintZoomPaperHeight:=0
  41. End Sub


 
 
En gros, je veux une fonction PrintIT pouvant utiliser l'application word crée précedemment
 
merci de votre aide


Message édité par Moundir le 01-09-2008 à 01:23:46
n°1780835
86vomito33
Posté le 01-09-2008 à 09:59:23  profilanswer
 

quest ce que cela donne comme ca ?
 
modifie les textes en rouge
et a mon avis la ligne 27 n'est pas bonne
 

Code :
  1. Public wd As Application
  2. Sub ExportPayer()
  3. Call CopyPasteExcel_Sheets_P_vs_R
  4. Call Doc_Payer
  5. Call PrintPDF(wd)
  6. End Sub
  7. Sub CopyPasteExcel_Sheets_P_vs_R()
  8. Sheets("TRS" ).Range("A1:B45" ).Copy (Sheets("P vs R" ).Range("A1" ))
  9. Sheets("P vs R" ).Select
  10. Range("A1:B45" ).Select
  11. Selection.Copy
  12. Sheets("TRS" ).Activate
  13. End Sub
  14. Sub Doc_Payer()
  15. Dim wd As Object
  16. Set wd = CreateObject("Word.Application" )
  17. wd.Visible = True
  18. Set DocWord = wd.Documents.Open("C:\test\TRS_Template.doc", ReadOnly:=True)
  19. ' Fermeture de Word 'Wd.Application.Quit
  20. wd.Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=10, Name:="" 'go to line10
  21. wd.Selection.Paste
  22. 'Wd.ActiveDocument.SaveAs Filename:=Get_Path & "\" & "LCM TC TRS " & Sheets("TRS" ).Range("Bloomberg_ticker" ) & Duration & " [" & _
  23. SNP & " vs " & SNR & "]" & ".doc"
  24. wd.ActiveDocument.SaveAs Filename:="C:\test\TRS" & "\" & "LCM TC TRS " & Sheets("TRS" ).Range("Bloomberg_ticker" ) & Duration & " [" & snp & " vs " & snr & "]" & ".doc"
  25. End Sub
  26. Sub PrintPDF(wd As Object)
  27.     ActivePrinter = "Brother HL-2030 series"
  28.     Application.PrintOut Filename:="", Range:=wdPrintAllDocument, Item:= _
  29.         wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
  30.         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
  31.         False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
  32.         PrintZoomPaperHeight:=0
  33. End Sub


Message édité par 86vomito33 le 01-09-2008 à 10:03:38
n°1780883
Moundir
Posté le 01-09-2008 à 11:28:13  profilanswer
 

Non, ça marche très bien.
 
Le seul truc que je veux, c'est d'utiliser Wd dans la fonction PrintPDF

n°1781523
dreameddea​th
Posté le 02-09-2008 à 16:48:22  profilanswer
 

Simple alors  
 

Code :
  1. Sub PrintPDF(wd As Word.Application)
  2.     wd.ActivePrinter = "Brother HL-2030 series"
  3.     wd.PrintOut Filename:="", Range:=wdPrintAllDocument, Item:= _
  4.         wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
  5.         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
  6.         False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
  7.         PrintZoomPaperHeight:=0
  8. End Sub


 
ça devrait largement suffire


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme controle Word via Excel

 

Sujets relatifs
probleme de tableau sous internet explorer[VBA] Reprise données Excel dans tableau Word
[php/mysql] Eviter un probleme dont je ne sais nommer[VBA - Excel] Envoi d'un mail via un service gratuit
SSAS - Problème avec des conversions de durées[Résolu][VBA-Excel]Problème d'affichage de feuille
Problème avec windev et SQL[VBA EXCEL 2007] macro ultra lente
Plus de sujets relatifs à : Probleme controle Word via Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR