J'ai un document Word qui contient une liste de documents Word à mettre en PDF.Sous quelle forme ?
pour faire un fichier c'est bon,C'est à dire ?
mais comment traiter du premier au dernier.Comme dans à peu prêt tous les cas de ce genre ( word ou autre...)... via une boucle .
Public Sub LectureDocLinePerLine() NomFichierAConvertir as String Dim doc As Document Set doc = ActiveDocument Dim paras As Paragraphs Set paras = doc.Paragraphs Dim para As Paragraph Dim sents As Sentences Dim sent As Range For Each para In paras Set sents = para.Range.Sentences For Each sent In sents Debug.Print sent.Text NomFichierAConvertir = sent.Text '--------------- ' Ici ton code pour ouvrir tes ' fichiers... les convertir..etc... '--------------- Next Next End Sub
NomFichierAConvertir as StringInstruction incorrecte à l'intérieur d'un bloc de type, donc j'ai supprimé la ligne et j'ai pu avancer.
NomFichierAConvertir = Trim(sent.Text)
Function FileThere(FileName As String) As Boolean FileThere = (Dir(FileName) > "") End Function
If FileThere(NomFichierAConvertir ) Then ' ' Ici ton code pour ouvrir tes ' fichiers... les convertir..etc.. ' Else MsgBox "Le fichier n'existe pas ! " & NomFichierAConvertir End If
NomFichierAConvertir = Trim(sent.Text).Substring(1, 11)Macro ci-dessous
Sub Relance()C'est juste un fichier "Nopiece.txt" qui contient des no de relances clients "R000451.TXT", "R000482.TXT" .. sur lesquels je fais une mise en page avec ajout d'une entête et PDF pour envoi par mail en auto par la suite (ma macro en VBA est déjà faite heureusement!!!).
'
' Relance Macro
'
'
'NomFichierAConvertir As String
Dim doc As Document
Set doc = ActiveDocument
Dim paras As Paragraphs
Set paras = doc.Paragraphs
Dim para As Paragraph
Dim sents As Sentences
Dim sent As Range
ChangeFileOpenDirectory "E:\Relance\"
ActiveDocument.SaveAs2 Filename:="NOPIECE.docm", FileFormat:= _
wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False, CompatibilityMode:=15
For Each para In paras
Set sents = para.Range.Sentences
For Each sent In sents
Debug.Print sent.Text
NomFichierAConvertir = Trim(sent.Text)
ChangeFileOpenDirectory "E:\Relance\pieces\"
MsgBox " Fichier " & NomFichierAConvertir
MsgBox "Longueur" & Len(NomFichierAConvertir)
' ne Fonctionne pas
'Documents.Open Filename:=NomFichierAConvertir, ConfirmConversions:=False, _
'ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
'PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
'WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", Encoding:=1252
' Fonctionne
Documents.Open Filename:="R000451.TXT", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", Encoding:=1252
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Font.Size = 14
Selection.TypeText Text:="PIN"
Selection.InsertSymbol Font:="+Corps", CharacterNumber:=199, Unicode:=True
Selection.TypeText Text:="ON S.A.S"
Selection.TypeParagraph
Selection.Font.Size = 12
Selection.TypeText Text:="8, rue de la Vacquerie"
Selection.TypeParagraph
Selection.TypeText Text:="75011 Paris"
Selection.TypeParagraph
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.EscapeKey
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
NomFichierAConvertir, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=False
ActiveDocument.Close
Windows("NOPIECE").Activate
MsgBox " Fichier inexistant " & NomFichierAConvertir
Next
Next
ActiveDocument.Close
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub test() Dim str As String str = "ceci est un test ! " 'Suppression des espaces avant et apres la chaine str = Trim(str) Debug.Print str 'suppression du dernier caractère str = Left(str, Len(str) - 1) Debug.Print str End Sub