Pour répondre à une question sur un autre forum, j'ai été amené à écrire une
macro-commande pour Publisher (2002 et 2003, certain, 2007, je ne sais pas).
Il s'agit de prendre une document Word, de l'ouvrir avec Publisher et
d'enregistrer chaque page sous un format d'image, ce que Pub peut, mais pas
Word. Elle est sûrement perfectible, mais là il est tard (ou tôt, presque 1
h 30 du matin) et j'ai un peu envie d'aller au dodo. Telle qu'elle est
écrite, elle ne peut prendre qu'un fichier Word à la fois. Pour les "pages
intérieures", l'image contient 2 pages à la fois.
Sub wordenimages()
'Clément Marcotte
'Amos (Québec) Canada
Dim DialogueOuvrir As FileDialog
Dim i As Integer, j As Integer
Dim fichier As String
Dim ledocument As Object
'Ouvrir la boîte de dialogue
'pour ouvrir le fichier Word.
'Pour sélectionner plus d'un fichier
'à la fois, mettre AllowMultiSelect à true
Set DialogueOuvrir = Application.FileDialog( _
Type:=msoFileDialogOpen)
With DialogueOuvrir
.AllowMultiSelect = False
.Title = "Ouvrir un fichiers Word"
.Filters.Add "Documents Word", "*.doc; *.rtf, 1"
.Show
End With
'Il faut ouvrir une deuxième instance de Publisher
'Pour réussir à ouvrir le document Word
Dim appPub As New Publisher.Application
appPub.Open FileName:=DialogueOuvrir.SelectedItems(1), _
ReadOnly:=True, AddToRecentFiles:=False, _
SaveChanges:=pbPromptToSaveChanges
appPub.ActiveWindow.Visible = True
'Enregistrer les pages au format JPG.
'Pour les pages intérieures, c'est 2 pages dans
'le même fichier (en regard, comme ils disent).
'Je suppose que pour d'autres formats
'supportés par Publisher, il suffit de changer
'l'extension. Pas envie d'essayer.
For j = 1 To appPub.ActiveDocument.Pages.Count
fichier = DialogueOuvrir.SelectedItems(1)
fichier = Right(fichier, Len(fichier) - InStrRev(fichier, "\") - 1)
fichier = Left(fichier, Len(fichier) - 4)
'Ajuster "c:\copie\images" et le nom de fichier
'selon les besoins
appPub.ActiveDocument.Pages(j).SaveAsPicture _
("c:\copie\images\" _
& fichier & "-page " & j & ".jpg")
Next
'Fermer la deuxième instance de Publisher
'répondre oui pour garder le fichier
appPub.Quit
Set appPub = Nothing
MsgBox ("Conversion du fichier, terminée")
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JLG
Bonjour Clément
ça a l'air de marcher sous Publisher 2007 (Beta)
merci pour la macro
-- retirer "toto" de mon adresse E-mail
Clément Marcotte wrote:
Bonjour,
Pour répondre à une question sur un autre forum, j'ai été amené à écrire une macro-commande pour Publisher (2002 et 2003, certain, 2007, je ne sais pas). Il s'agit de prendre une document Word, de l'ouvrir avec Publisher et d'enregistrer chaque page sous un format d'image, ce que Pub peut, mais pas Word. Elle est sûrement perfectible, mais là il est tard (ou tôt, presque 1 h 30 du matin) et j'ai un peu envie d'aller au dodo. Telle qu'elle est écrite, elle ne peut prendre qu'un fichier Word à la fois. Pour les "pages intérieures", l'image contient 2 pages à la fois.
Sub wordenimages() 'Clément Marcotte 'Amos (Québec) Canada Dim DialogueOuvrir As FileDialog Dim i As Integer, j As Integer Dim fichier As String Dim ledocument As Object 'Ouvrir la boîte de dialogue 'pour ouvrir le fichier Word. 'Pour sélectionner plus d'un fichier 'à la fois, mettre AllowMultiSelect à true Set DialogueOuvrir = Application.FileDialog( _ Type:=msoFileDialogOpen) With DialogueOuvrir .AllowMultiSelect = False .Title = "Ouvrir un fichiers Word" .Filters.Add "Documents Word", "*.doc; *.rtf, 1" .Show End With 'Il faut ouvrir une deuxième instance de Publisher 'Pour réussir à ouvrir le document Word Dim appPub As New Publisher.Application appPub.Open FileName:=DialogueOuvrir.SelectedItems(1), _ ReadOnly:=True, AddToRecentFiles:úlse, _ SaveChanges:=pbPromptToSaveChanges appPub.ActiveWindow.Visible = True 'Enregistrer les pages au format JPG. 'Pour les pages intérieures, c'est 2 pages dans 'le même fichier (en regard, comme ils disent). 'Je suppose que pour d'autres formats 'supportés par Publisher, il suffit de changer 'l'extension. Pas envie d'essayer. For j = 1 To appPub.ActiveDocument.Pages.Count fichier = DialogueOuvrir.SelectedItems(1) fichier = Right(fichier, Len(fichier) - InStrRev(fichier, "") - 1) fichier = Left(fichier, Len(fichier) - 4) 'Ajuster "c:copieimages" et le nom de fichier 'selon les besoins appPub.ActiveDocument.Pages(j).SaveAsPicture _ ("c:copieimages" _ & fichier & "-page " & j & ".jpg") Next 'Fermer la deuxième instance de Publisher 'répondre oui pour garder le fichier appPub.Quit Set appPub = Nothing MsgBox ("Conversion du fichier, terminée") End Sub
Bonjour Clément
ça a l'air de marcher sous Publisher 2007 (Beta)
merci pour la macro
--
retirer "toto" de mon adresse E-mail
Clément Marcotte wrote:
Bonjour,
Pour répondre à une question sur un autre forum, j'ai été amené à
écrire une macro-commande pour Publisher (2002 et 2003, certain,
2007, je ne sais pas). Il s'agit de prendre une document Word, de
l'ouvrir avec Publisher et d'enregistrer chaque page sous un format
d'image, ce que Pub peut, mais pas Word. Elle est sûrement
perfectible, mais là il est tard (ou tôt, presque 1 h 30 du matin) et
j'ai un peu envie d'aller au dodo. Telle qu'elle est écrite, elle ne
peut prendre qu'un fichier Word à la fois. Pour les "pages
intérieures", l'image contient 2 pages à la fois.
Sub wordenimages()
'Clément Marcotte
'Amos (Québec) Canada
Dim DialogueOuvrir As FileDialog
Dim i As Integer, j As Integer
Dim fichier As String
Dim ledocument As Object
'Ouvrir la boîte de dialogue
'pour ouvrir le fichier Word.
'Pour sélectionner plus d'un fichier
'à la fois, mettre AllowMultiSelect à true
Set DialogueOuvrir = Application.FileDialog( _
Type:=msoFileDialogOpen)
With DialogueOuvrir
.AllowMultiSelect = False
.Title = "Ouvrir un fichiers Word"
.Filters.Add "Documents Word", "*.doc; *.rtf, 1"
.Show
End With
'Il faut ouvrir une deuxième instance de Publisher
'Pour réussir à ouvrir le document Word
Dim appPub As New Publisher.Application
appPub.Open FileName:=DialogueOuvrir.SelectedItems(1), _
ReadOnly:=True, AddToRecentFiles:úlse, _
SaveChanges:=pbPromptToSaveChanges
appPub.ActiveWindow.Visible = True
'Enregistrer les pages au format JPG.
'Pour les pages intérieures, c'est 2 pages dans
'le même fichier (en regard, comme ils disent).
'Je suppose que pour d'autres formats
'supportés par Publisher, il suffit de changer
'l'extension. Pas envie d'essayer.
For j = 1 To appPub.ActiveDocument.Pages.Count
fichier = DialogueOuvrir.SelectedItems(1)
fichier = Right(fichier, Len(fichier) - InStrRev(fichier, "") - 1)
fichier = Left(fichier, Len(fichier) - 4)
'Ajuster "c:copieimages" et le nom de fichier
'selon les besoins
appPub.ActiveDocument.Pages(j).SaveAsPicture _
("c:copieimages" _
& fichier & "-page " & j & ".jpg")
Next
'Fermer la deuxième instance de Publisher
'répondre oui pour garder le fichier
appPub.Quit
Set appPub = Nothing
MsgBox ("Conversion du fichier, terminée")
End Sub
Pour répondre à une question sur un autre forum, j'ai été amené à écrire une macro-commande pour Publisher (2002 et 2003, certain, 2007, je ne sais pas). Il s'agit de prendre une document Word, de l'ouvrir avec Publisher et d'enregistrer chaque page sous un format d'image, ce que Pub peut, mais pas Word. Elle est sûrement perfectible, mais là il est tard (ou tôt, presque 1 h 30 du matin) et j'ai un peu envie d'aller au dodo. Telle qu'elle est écrite, elle ne peut prendre qu'un fichier Word à la fois. Pour les "pages intérieures", l'image contient 2 pages à la fois.
Sub wordenimages() 'Clément Marcotte 'Amos (Québec) Canada Dim DialogueOuvrir As FileDialog Dim i As Integer, j As Integer Dim fichier As String Dim ledocument As Object 'Ouvrir la boîte de dialogue 'pour ouvrir le fichier Word. 'Pour sélectionner plus d'un fichier 'à la fois, mettre AllowMultiSelect à true Set DialogueOuvrir = Application.FileDialog( _ Type:=msoFileDialogOpen) With DialogueOuvrir .AllowMultiSelect = False .Title = "Ouvrir un fichiers Word" .Filters.Add "Documents Word", "*.doc; *.rtf, 1" .Show End With 'Il faut ouvrir une deuxième instance de Publisher 'Pour réussir à ouvrir le document Word Dim appPub As New Publisher.Application appPub.Open FileName:=DialogueOuvrir.SelectedItems(1), _ ReadOnly:=True, AddToRecentFiles:úlse, _ SaveChanges:=pbPromptToSaveChanges appPub.ActiveWindow.Visible = True 'Enregistrer les pages au format JPG. 'Pour les pages intérieures, c'est 2 pages dans 'le même fichier (en regard, comme ils disent). 'Je suppose que pour d'autres formats 'supportés par Publisher, il suffit de changer 'l'extension. Pas envie d'essayer. For j = 1 To appPub.ActiveDocument.Pages.Count fichier = DialogueOuvrir.SelectedItems(1) fichier = Right(fichier, Len(fichier) - InStrRev(fichier, "") - 1) fichier = Left(fichier, Len(fichier) - 4) 'Ajuster "c:copieimages" et le nom de fichier 'selon les besoins appPub.ActiveDocument.Pages(j).SaveAsPicture _ ("c:copieimages" _ & fichier & "-page " & j & ".jpg") Next 'Fermer la deuxième instance de Publisher 'répondre oui pour garder le fichier appPub.Quit Set appPub = Nothing MsgBox ("Conversion du fichier, terminée") End Sub