Tom's Guide > Forum > Programmation > [VBA/Word] Simplification d'un bout de code
[VBA/Word] Simplification d'un bout de code - Programmation
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

: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 :

Code :
  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


Message édité par gryphus71 le 14-12-2007 à 11:24:50
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

Répondre à doatyn

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é" ? :-/

Répondre à gryphus71

Bon après avoir lu quelques opsts j'en suis arrivé à ça (qu'en penssez vous ?) :

Code :
  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" )
;)

Répondre à gryphus71

petit up s'il vous plait !

Répondre à gryphus71
Tom's Guide > Forum > Programmation > [VBA/Word] Simplification d'un bout de code
Aller à :

Il y a 2166 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens