Macro excel pilotant word, Pb pour supprimer une section

Macro excel pilotant word, Pb pour supprimer une section - VB/VBA/VBS - Programmation

Marsh Posté le 18-01-2008 à 19:58:39    

Salut forumiens,
 
Je suis en train de bosser (depuis bien trop longtemps :S) sur une macro excel, qui a partir de reponses a des listes deroulantes sur une feuille de calcul, permet d'automatiser la redaction d'un rapport word a partir d'un document maitre en n'inserant que les parties necessaires.
Ma logique est la suivante:
Je cree une instance de Word, ouvre le document maitre et le copie, colle sous le doc a rediger. Puis en fonction des valeurs des menus deroulants, on supprime telle ou telle section.
Bref en clair ca donne ca:
 

Code :
  1. Private Sub CommandButton1_Click()
  2. '-----Creation of the variables
  3. Dim boat_title As String
  4. Dim boat_class As String
  5. Dim mains_and_rudders As String
  6. Dim num_bow_tunnels As Integer
  7. Dim bow_azi As String
  8. Dim num_stern_tunnels As Integer
  9. Dim auto_pilot As String
  10. Dim adaptive_auto_pilot As String
  11. Dim speed_pilot As String
  12. Dim hstf_pilot As String
  13. Dim power_monitoring As String
  14. boat_title = Cells(5, 6).Value
  15. boat_class = Cells(7, 6).Value
  16. mains_and_rudders = Cells(9, 6).Value
  17. num_bow_tunnels = Cells(11, 6).Value
  18. bow_azi = Cells(13, 6).Value
  19. num_stern_tunnels = Cells(15, 6).Value
  20. auto_pilot = Cells(17, 6).Value
  21. adaptive_auto_pilot = Cells(19, 6).Value
  22. speed_pilot = Cells(21, 6).Value
  23. hstf_pilot = Cells(23, 6).Value
  24. power_monitoring = Cells(25, 6).Value
  25. '-----Copy master trial procedure
  26. Set appWD_master_doc = CreateObject("Word.Application" )
  27. appWD_master_doc.Visible = False
  28. appWD_master_doc.Documents.Open Filename:="Q:\JMayer\Sea_Trials_Notes.doc", ReadOnly:=True
  29. appWD_master_doc.Selection.WholeStory
  30. appWD_master_doc.Selection.Copy


 
 

Code :
  1. '-----Create personalized tuning procedure
  2. Set appWD_tun_process = CreateObject("Word.Application" )
  3. appWD_tun_process.Visible = True
  4. appWD_tun_process.Documents.Add
  5. Dim doc_title As String
  6. doc_title = "Tuning Procedure for " & boat_title & vbCrLf & vbCrLf
  7. file_title = Replace(boat_title, " ", "_" )
  8. file_title = "Q:\Tuning_Procedures\" & file_title & "_Tuning_Procedure"
  9. 'Set W = GetObject(Class:="Word.Application" )
  10. Set S = appWD_tun_process.ActiveWindow.Selection
  11. With S
  12.     .ParagraphFormat.Alignment = wdAlignParagraphCenter
  13.     .Font.Bold = True
  14.     .Font.Size = 18
  15.     .TypeText doc_title
  16.     .ParagraphFormat.Alignment = wdAlignParagraphLeft
  17. End With
  18. appWD_tun_process.Selection.Paste


 
Jusque la tout marche bien ce qui signifie que j'arrive quand meme a manipuler le document cree.
 
Apres ca j'ai essaye de tres nombreuses manieres d'acceder a une section ou page ou meme mot sur ce document afin de le supprimer. J'ai rencontre de nombreuses erreurs, souvent inconsistantes.
 
J'ai essaye ceci

Code :
  1. 'Dim MyRange   As Range
  2. 'Set MyRange = ActiveDocument.Sections(1).Range
  3. 'Set MyRange = MyRange.GoTo(What:=wdGoToSections, Name:="1" )
  4. 'appWD_tun_process.Selection.Delete


 
cela aussi:

Code :
  1. Set S = appWD_tun_process.ActiveWindow.Selection
  2. With S
  3.     Selection.Words(1).Delete
  4. End With


 

Code :
  1. Dim MyRange As Range
  2. Set MyRange = appWD_tun_process.Selection.Range
  3. Set MyRange = MyRange.GoTo(What:=wdGoToPage, Name:="2" )
  4. Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="\page" )
  5. MyRange.Delete''


 
J'en ai essaye pas mal d'autres, mais je ne me rappelle pas de toutes et je n'ai aucune idee de la raison pour laquelle elles ne marchent pas.
Les erreurs rencontrees sont :
- 438: Object does not support property or method
- 13: Type mismatch
- 53**" Object defined or *** defined error (je ne me souviens plus exactement de celle-la et n'ai pas reussi a la revoir)
 
Qqun a-t-il une idee?
Merci
 
PS: Le VB n'est vraiment pas mon truc comme vous l'avez surement constate donc essayez svp d'etre explicite dans vos reponses. Merci d'avance

Reply

Marsh Posté le 18-01-2008 à 19:58:39   

Reply

Marsh Posté le 18-01-2008 à 22:16:45    

ok
Ca ca marche
 

Code :
  1. appWD_tun_process.Selection.WholeStory
  2. appWD_tun_process.Selection.Delete Unit:=wdCharacter, Count:=1
  3. appWD_tun_process.Selection.TypeBackspace


 
Est-il possible d'adapter ces trois lignes pour effacer une section en particulier au lieu du document entier?
 
Merci

Reply

Marsh Posté le 18-01-2008 à 23:22:55    

aussi erreur 4120, application defined or object defined error

Reply

Marsh Posté le 21-01-2008 à 07:17:19    

up

Reply

Marsh Posté le 23-01-2008 à 07:26:17    

up
personne n'a d'idee? :s

Reply

Marsh Posté le 27-01-2008 à 07:45:51    

up
 :sweat:

Reply

Marsh Posté le 15-02-2008 à 19:22:25    

up...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed