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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel pilotant word, Pb pour supprimer une section

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro excel pilotant word, Pb pour supprimer une section

n°1673559
Profil sup​primé
Posté le 18-01-2008 à 19:58:39  answer
 

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

mood
Publicité
Posté le 18-01-2008 à 19:58:39  profilanswer
 

n°1673595
Profil sup​primé
Posté le 18-01-2008 à 22:16:45  answer
 

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

n°1673629
Profil sup​primé
Posté le 18-01-2008 à 23:22:55  answer
 

aussi erreur 4120, application defined or object defined error

n°1674161
Profil sup​primé
Posté le 21-01-2008 à 07:17:19  answer
 

up

n°1675448
Profil sup​primé
Posté le 23-01-2008 à 07:26:17  answer
 

up
personne n'a d'idee? :s

n°1677316
Profil sup​primé
Posté le 27-01-2008 à 07:45:51  answer
 

up
 :sweat:

n°1687098
Profil sup​primé
Posté le 15-02-2008 à 19:22:25  answer
 

up...


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

  Macro excel pilotant word, Pb pour supprimer une section

 

Sujets relatifs
[ACCESS] Rqt multicritere export vers Excelmacro excel pour collage spécial dans Word
Macro pour hierarchiser...macro menu déroulant
Lire et écrire dans une base de données SQL via ExcelAide pour une macro
Plus de sujets relatifs à : Macro excel pilotant word, Pb pour supprimer une section


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