1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| Public Function ImpressionCodeBarre() As String
' Procédure qui crée le document Word contenant le code barre dans wDoc puis l'ajoute au document AllVif qui est un document définit globalement
Dim Wapp as word.application
Dim wDoc As Word.Document
'en vrai j'ouvre wApp et wDoc une seule fois, j'ai mis les commandes de création pour la cohérence du code
On Error Resume Next
Set Wapp = New Word.Application
Wapp.Visible = True
Set wDoc = Wapp.Documents.Add 'Crée un document de travail
With wDoc
.Activate
.Font.Name = "Arial"
.Font.Size = 12
End With
With wDoc.Content
' ***** Remplissage du document *****
.Delete 'Vide tous ce qui pourrait géner.
.InsertAfter ThisWorkbook.Worksheets("BarCode").Cells(1, 1) 'Code barre (para1)
.InsertParagraphAfter
.InsertAfter ThisWorkbook.Worksheets("BarCode").Cells(2, 1) 'Texte sous le code barre (para2)
.InsertParagraphAfter
.InsertAfter ThisWorkbook.Worksheets("BarCode").Cells(8, 1) 'Matricule encodeur (para7)
.InsertParagraphAfter
.InsertAfter "##BCS##" & Space(60) & ThisWorkbook.Sheets("BarCode").Cells(9, 1) 'Code barre ACC (para8)
.InsertParagraphAfter
.InsertAfter " " & ThisWorkbook.Worksheets("BarCode").Cells(10, 1) 'texte ACC (para9)
Wapp.Selection.HomeKey
' ***** Formatage des différentes lignes *****
With .Paragraphs(1).Range ' Formatage code barre du haut
.ParagraphFormat.SpaceBefore = 0
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 96
.Font.Scaling = 38
.Font.Name = "Free 3 of 9"
.Select
End With
With Wapp.Selection
.MoveStart unit:=wdLine, Count:=1
.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
.Font.Size = 10
.Font.Scaling = 100
.Font.Name = "Arial" 'Le <Enter> final du § ne doit pas être en code barre
End With
With .Paragraphs(2).Range ' Formatage ligne sous le code barre
.ParagraphFormat.SpaceBefore = 0
.ParagraphFormat.LeftIndent = CentimetersToPoints(2)
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 10
.Font.Spacing = 10
End With
With Wapp.Selection
.WholeStory
.Find.Execute findText:="##BCS##" 'Dans le paragraphe 8!
Sleep 100
.Font.Size = 18
.Font.Bold = True
.Font.Position = 21
.WholeStory
.Find.Execute findText:=ThisWorkbook.Worksheets(2).Cells(9, 1) '*CSI* ou *ACC*
Sleep 100
.Font.Name = "Free 3 of 9"
.Font.Size = 96
.Font.Scaling = 38
'On sélectionne le <Enter> et on le formate en Arial
Sleep 100
.MoveStart unit:=wdLine, Count:=1
.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
.Font.Size = 10
.Font.Scaling = 100
.Font.Name = "Arial" 'Le <Enter> final du § ne doit pas être en code barre
.MoveDown unit:=wdParagraph, Count:=2, Extend:=wdExtend
End With
With .Paragraphs(9).Range ' Formatage ligne ACC sous le code barre
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 10
.Font.Spacing = 20
End With
End With
'Ajout de la page ainsi crée dans AllVif qui reprend tous les codes barres déjà créés.
With AllVif.Content
.Collapse Direction:=wdCollapseEnd
Set MyRange = wDoc.Range
MyRange.WholeStory
MyRange.Copy
.Paste
.Collapse Direction:=wdCollapseEnd
.InsertBreak Type:=wdPageBreak
.Collapse Direction:=wdCollapseEnd
End With
set wDoc=nothing
set wApp= Nothing 'en réalité je n'ouvre qu'une fois wApp et wDoc, j'ai mis ces deux commandes pour la cohérence du code
End Function |
Partager