Se connecter / S'enregistrer
Votre question

[VBA/Word] Simplification d'un bout de code

Tags :
  • Word
  • Programmation
Dernière réponse : dans Programmation
14 Décembre 2007 11:20:31

:hello:  Salut :hello: 

je suis venu vous demander votre aide pour m'aider à simplifier ce code mais surtout à m'expliquer comment/pourquoi on simplifie telle ligne comme ca ou comme ca car j'en aurais d'autres à faire ...
Voici un bout de code exemple :

  1. With ActiveDocument.Styles(wdStyleNormal).Font
  2. If .NameFarEast = .NameAscii Then
  3. .NameAscii = ""
  4. End If
  5. .NameFarEast = ""
  6. End With
  7. With ActiveDocument.PageSetup
  8. .LineNumbering.Active = False
  9. .Orientation = wdOrientLandscape
  10. .TopMargin = CentimetersToPoints(2.5)
  11. .BottomMargin = CentimetersToPoints(2.5)
  12. .LeftMargin = CentimetersToPoints(2.5)
  13. .RightMargin = CentimetersToPoints(2.5)
  14. .Gutter = CentimetersToPoints(0)
  15. .HeaderDistance = CentimetersToPoints(1.25)
  16. .FooterDistance = CentimetersToPoints(1.25)
  17. .PageWidth = CentimetersToPoints(29.7)
  18. .PageHeight = CentimetersToPoints(21)
  19. .FirstPageTray = wdPrinterDefaultBin
  20. .OtherPagesTray = wdPrinterDefaultBin
  21. .SectionStart = wdSectionNewPage
  22. .OddAndEvenPagesHeaderFooter = False
  23. .DifferentFirstPageHeaderFooter = False
  24. .VerticalAlignment = wdAlignVerticalTop
  25. .SuppressEndnotes = False
  26. .MirrorMargins = False
  27. .TwoPagesOnOne = False
  28. .BookFoldPrinting = False
  29. .BookFoldRevPrinting = False
  30. .BookFoldPrintingSheets = 1
  31. .GutterPos = wdGutterPosLeft
  32. End With
  33. ActiveWindow.ActivePane.View.Zoom.Percentage = 100
  34. If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
  35. ActiveWindow.Panes(2).Close
  36. End If
  37. If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
  38. ActivePane.View.Type = wdOutlineView Then
  39. ActiveWindow.ActivePane.View.Type = wdPrintView
  40. End If
  41. ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
  42. Selection.TypeText Text:="Service Desk"
  43. Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
  44. Selection.Font.Color = wdColorGray25
  45. Selection.Font.Bold = wdToggle
  46. If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
  47. ActiveWindow.Panes(2).Close
  48. End If
  49. If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
  50. ActivePane.View.Type = wdOutlineView Then
  51. ActiveWindow.ActivePane.View.Type = wdPrintView
  52. End If
  53. ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
  54. Selection.TypeText Text:="ok"
  55. Selection.TypeParagraph


Merci d'avance

Autres pages sur : vba word simplification bout code

14 Décembre 2007 11:34:53

C'est tout du paramétrage, je ne vois pas comment tu peux simplifier ça.

Par contre, tu peux stocker un modèle pré-paramétré que tu utilises pour créer de nouveux fichiers -> plus besoin de code.

14 Décembre 2007 13:05:18

du paramètrage oui et non, en fait tout ce code ne sert qu'à poitionner ma page en mode paysage + écrire "Service Desk" en gras, taille 14 dans une entête de page.
c'est comme pour pas mal d'exemples où word/excel précise plein de valeurs alors qu'elles sont déjà à cette valeur par défaut.
exemple : le .printout sous excel, quand tu fais faire une macro automatiquement, il te précise un truc genre num_page=1 alors que si tu ne le précise pas il prendra 1 par défaut

et je n'ai pas compris pour ton "modèle pré-paramétré" ? :-/
Contenus similaires
14 Décembre 2007 15:04:23

Bon après avoir lu quelques opsts j'en suis arrivé à ça (qu'en penssez vous ?) :
  1. With AW
  2. .ActiveDocument.PageSetup.Orientation = wdOrientLandscape ' Orientation de la page en paysage
  3. .WindowState = wdWindowStateMaximize ' On maximise la taille de la fenêtre Windows
  4. .ActiveWindow.ActivePane.View.Zoom.Percentage = 100 ' Affichage de la page sur 100% de l'écran
  5. .ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader ' Accès en modification de l'entête de page
  6. .Selection.TypeText Text:="Service Desk SI3SI" ' Entête de page
  7. .Selection.HomeKey Unit:=wdLine, Extend:=wdExtend ' Selection du texte qui vient d'être inscrit
  8. .Selection.Font.Color = wdColorGray25 ' Couleur du texte en gris clair
  9. .Selection.Font.Bold = True ' Epaisseur du texte en gras.
  10. .ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument ' On revient à la modification du texte du document
  11. End With


Pour info : j'ai ca en début de code (macro excel):
Dim AW As Object
Set AW = CreateObject("Word.Application")
;) 
17 Décembre 2007 08:57:23

petit up s'il vous plait !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS