Vba sur 1 fichier pour extraire individuellement les pages
9 réponses
Ludovic
Bonjour,
Je suis newbie sur Word .
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont
constitu=E9es de la m=EAme mani=E8re.
Il y a sur chacune des pages un identifiant diff=E9rent situ=E9 =E0 la m=EA=
me
place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier
individuellement et donner comme nom =E0 chaque fichier l'identifiant
pr=E9sent sur la page.
Est-ce possible avec une macro ou du vba?
Merci pour votre aide.
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
Anacoluthe
Bonjour !
'Ludovic' nous a écrit ...
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la même place (et de longueur identique) Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page. Est-ce possible avec une macro ou du vba?
Ce n'est possible QUE par une macro. Il faut savoir que la /page/ n'est pas un /objet/ vba car Word décide seul sa mise en page. Il est donc essentiel de savoir si vos pages sont séparées par un saut de page ou un saut de section (comme dans un document de fusion) ... ou par rien du tout. Voyez par exemple : http://support.microsoft.com/kb/216845/fr
Anacoluthe « Il y a des mots qui séparent. » - Caroline GRIMM
Bonjour !
'Ludovic' nous a écrit ...
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont
constituées de la même manière.
Il y a sur chacune des pages un identifiant différent situé à la même
place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier
individuellement et donner comme nom à chaque fichier l'identifiant
présent sur la page.
Est-ce possible avec une macro ou du vba?
Ce n'est possible QUE par une macro.
Il faut savoir que la /page/ n'est pas un /objet/ vba car Word décide
seul sa mise en page. Il est donc essentiel de savoir si vos pages sont
séparées par un saut de page ou un saut de section (comme dans
un document de fusion) ... ou par rien du tout.
Voyez par exemple :
http://support.microsoft.com/kb/216845/fr
Anacoluthe
« Il y a des mots qui séparent. »
- Caroline GRIMM
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la même place (et de longueur identique) Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page. Est-ce possible avec une macro ou du vba?
Ce n'est possible QUE par une macro. Il faut savoir que la /page/ n'est pas un /objet/ vba car Word décide seul sa mise en page. Il est donc essentiel de savoir si vos pages sont séparées par un saut de page ou un saut de section (comme dans un document de fusion) ... ou par rien du tout. Voyez par exemple : http://support.microsoft.com/kb/216845/fr
Anacoluthe « Il y a des mots qui séparent. » - Caroline GRIMM
heureux-oli
Bonjour !
Si il est possible de trouver l'identifiant de la page, il est possible de placer un signet sur le premier identifiant, trouver le second comme fin de sélection, couper le contenu, le colle dans un nouveau document, sauver le document avec l'identifiant pour nom, supprimer les signets et recommencer.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
-- heureux-oli http://heureuxoli.developpez.com/
"Ludovic" a écrit dans le message de news:
Bonjour, Je suis newbie sur Word . Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la même place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page.
Est-ce possible avec une macro ou du vba? Merci pour votre aide.
Ludovic (Word 2003)
Bonjour !
Si il est possible de trouver l'identifiant de la page, il est possible de
placer un signet sur le premier identifiant, trouver le second comme fin de
sélection, couper le contenu, le colle dans un nouveau document, sauver le
document avec l'identifiant pour nom, supprimer les signets et recommencer.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
--
heureux-oli
http://heureuxoli.developpez.com/
"Ludovic" <ludovic.gnemmi@gmail.com> a écrit dans le message de news:
1185987330.756737.288070@w3g2000hsg.googlegroups.com...
Bonjour,
Je suis newbie sur Word .
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont
constituées de la même manière.
Il y a sur chacune des pages un identifiant différent situé à la même
place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier
individuellement et donner comme nom à chaque fichier l'identifiant
présent sur la page.
Est-ce possible avec une macro ou du vba?
Merci pour votre aide.
Si il est possible de trouver l'identifiant de la page, il est possible de placer un signet sur le premier identifiant, trouver le second comme fin de sélection, couper le contenu, le colle dans un nouveau document, sauver le document avec l'identifiant pour nom, supprimer les signets et recommencer.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
-- heureux-oli http://heureuxoli.developpez.com/
"Ludovic" a écrit dans le message de news:
Bonjour, Je suis newbie sur Word . Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la même place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page.
Est-ce possible avec une macro ou du vba? Merci pour votre aide.
Ludovic (Word 2003)
Ludovic
Bonjour, Merci bien pour vos réponses !! Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
Réponse pour Anacoluthe : Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
Réponse pour heureux-oli : Voici un exemple d'identifiant: 0101-2301 Sa position dans la page est fixe (même ligne, même colonne). Je suis un peu paumé avec ta manip (je sais meme pas ce que c'est qu'un signet) Je peux pas simplement lire 9 caractères à partir du caractère plac é Ligne 3 Colonne 12 ?
Ludovic
On 1 août, 20:21, "heureux-oli" wrote:
Bonjour !
Si il est possible de trouver l'identifiant de la page, il est possible de placer un signet sur le premier identifiant, trouver le second comme fin de sélection, couper le contenu, le colle dans un nouveau document, sauver le document avec l'identifiant pour nom, supprimer les signets et recommence r.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
-- heureux-olihttp://heureuxoli.developpez.com/
"Ludovic" a écrit dans le message de news:
Bonjour, Je suis newbie sur Word . Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la m ême place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page.
Est-ce possible avec une macro ou du vba? Merci pour votre aide.
Ludovic (Word 2003)
Bonjour,
Merci bien pour vos réponses !!
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste
la finalité qui m'intéresse.
Réponse pour Anacoluthe :
Les pages sont bien séparées par un saut de page.
Super le lien, mais il ne dit pas comment prendre l'identifiant comme
nom de fichier.
Réponse pour heureux-oli :
Voici un exemple d'identifiant: 0101-2301
Sa position dans la page est fixe (même ligne, même colonne).
Je suis un peu paumé avec ta manip (je sais meme pas ce que c'est
qu'un signet)
Je peux pas simplement lire 9 caractères à partir du caractère plac é
Ligne 3 Colonne 12 ?
Ludovic
On 1 août, 20:21, "heureux-oli" <heureux-...@hotmail.com> wrote:
Bonjour !
Si il est possible de trouver l'identifiant de la page, il est possible de
placer un signet sur le premier identifiant, trouver le second comme fin de
sélection, couper le contenu, le colle dans un nouveau document, sauver le
document avec l'identifiant pour nom, supprimer les signets et recommence r.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
--
heureux-olihttp://heureuxoli.developpez.com/
"Ludovic" <ludovic.gne...@gmail.com> a écrit dans le message de news:
1185987330.756737.288...@w3g2000hsg.googlegroups.com...
Bonjour,
Je suis newbie sur Word .
Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont
constituées de la même manière.
Il y a sur chacune des pages un identifiant différent situé à la m ême
place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier
individuellement et donner comme nom à chaque fichier l'identifiant
présent sur la page.
Est-ce possible avec une macro ou du vba?
Merci pour votre aide.
Bonjour, Merci bien pour vos réponses !! Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
Réponse pour Anacoluthe : Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
Réponse pour heureux-oli : Voici un exemple d'identifiant: 0101-2301 Sa position dans la page est fixe (même ligne, même colonne). Je suis un peu paumé avec ta manip (je sais meme pas ce que c'est qu'un signet) Je peux pas simplement lire 9 caractères à partir du caractère plac é Ligne 3 Colonne 12 ?
Ludovic
On 1 août, 20:21, "heureux-oli" wrote:
Bonjour !
Si il est possible de trouver l'identifiant de la page, il est possible de placer un signet sur le premier identifiant, trouver le second comme fin de sélection, couper le contenu, le colle dans un nouveau document, sauver le document avec l'identifiant pour nom, supprimer les signets et recommence r.
Pourrais-tu nous dire à quoi ressemble ton identifiant ?
-- heureux-olihttp://heureuxoli.developpez.com/
"Ludovic" a écrit dans le message de news:
Bonjour, Je suis newbie sur Word . Je dispose d'un fichier d'environ 2000 pages. Tous les pages sont constituées de la même manière. Il y a sur chacune des pages un identifiant différent situé à la m ême place (et de longueur identique)
Je souhaiterait simplement enregistrer chaque page de ce fichier individuellement et donner comme nom à chaque fichier l'identifiant présent sur la page.
Est-ce possible avec une macro ou du vba? Merci pour votre aide.
Ludovic (Word 2003)
Anacoluthe
Bonjour !
'Ludovic' nous a écrit ...
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil ! Macro = macrocommande VBA = le langage de programmation 'Visual Basic pour Applications' Depuis WD97 les macros de Word sont toutes écrites en VBA
Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
'Identifiant' n'existe pas en VBA
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifiant' - le signet portant le nom 'Identifiant' - le champ contenant la propriété personnelle 'Identifiant' - La 4ème cellule du 3ème tableau - Le 5ème paragraphe à partir du bas - le mot qui suit le texte 'Identifiant :' - etc etc etc etc
Anacoluthe « Le principal est de débuter. » - Georges Charles HUYSMANS
Bonjour !
'Ludovic' nous a écrit ...
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste
la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil !
Macro = macrocommande
VBA = le langage de programmation 'Visual Basic pour Applications'
Depuis WD97 les macros de Word sont toutes écrites en VBA
Les pages sont bien séparées par un saut de page.
Super le lien, mais il ne dit pas comment prendre l'identifiant comme
nom de fichier.
'Identifiant' n'existe pas en VBA
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifiant'
- le signet portant le nom 'Identifiant'
- le champ contenant la propriété personnelle 'Identifiant'
- La 4ème cellule du 3ème tableau
- Le 5ème paragraphe à partir du bas
- le mot qui suit le texte 'Identifiant :'
- etc etc etc etc
Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil ! Macro = macrocommande VBA = le langage de programmation 'Visual Basic pour Applications' Depuis WD97 les macros de Word sont toutes écrites en VBA
Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
'Identifiant' n'existe pas en VBA
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifiant' - le signet portant le nom 'Identifiant' - le champ contenant la propriété personnelle 'Identifiant' - La 4ème cellule du 3ème tableau - Le 5ème paragraphe à partir du bas - le mot qui suit le texte 'Identifiant :' - etc etc etc etc
Anacoluthe « Le principal est de débuter. » - Georges Charles HUYSMANS
Ludovic
Anacoluth :
Anacoluth :
On 2 août, 13:04, Anacoluthe wrote:
Bonjour !
'Ludovic' nous a écrit ...
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil ! Macro = macrocommande VBA = le langage de programmation 'Visual Basic pour Applications' Depuis WD97 les macros de Word sont toutes écrites en VBA
J'écris cette phrase par rapport à la phrase de ton 1er message : "Ce n'est possible QUE par une macro." Phrase qui semble elle-même faire référence à l'objet du post "VBA. .." pour dire que ce n'est pas possible en Vba mais par une macro. Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Ceci dit, n'y connaissant rien à Word, je pensais effectivement qu'une macro se différenciat du Vba par le fait qu'elle ne comportait aucune ligne de code et uniquement une suite d'actions (non transcrites en code) et réalisables par quiconque sans connaissance de programmation.
Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
'Identifiant' n'existe pas en VBA
Oui ça j'imagine
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifia nt' - le signet portant le nom 'Identifiant' - le champ contenant la propriété personnelle 'Identifiant' - La 4ème cellule du 3ème tableau - Le 5ème paragraphe à partir du bas - le mot qui suit le texte 'Identifiant :' - etc etc etc etc
Au risque de me répété : mon identifiant est composé de 9 caractè res et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de chaque page.
exprimé autrement : cette chaine apparait juste après la chaine "Zone n ° :" qui elle-meme apparaît après 2 retours à la ligne et une tabulation.
exple sur une page :
Titre de la page sous-titre de la page Zone n° : 0101-2301
Ludovic
Anacoluth :
Anacoluth :
On 2 août, 13:04, Anacoluthe <nopub_anacolu...@Ouanadoo.fr> wrote:
Bonjour !
'Ludovic' nous a écrit ...
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste
la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil !
Macro = macrocommande
VBA = le langage de programmation 'Visual Basic pour Applications'
Depuis WD97 les macros de Word sont toutes écrites en VBA
J'écris cette phrase par rapport à la phrase de ton 1er message : "Ce
n'est possible QUE par une macro."
Phrase qui semble elle-même faire référence à l'objet du post "VBA. .."
pour dire que ce n'est pas possible en Vba mais par une macro.
Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Ceci dit, n'y connaissant rien à Word, je pensais effectivement qu'une
macro se différenciat du Vba par le fait qu'elle ne comportait aucune
ligne de code et uniquement une suite d'actions (non transcrites en
code) et réalisables par quiconque sans connaissance de programmation.
Les pages sont bien séparées par un saut de page.
Super le lien, mais il ne dit pas comment prendre l'identifiant comme
nom de fichier.
'Identifiant' n'existe pas en VBA
Oui ça j'imagine
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifia nt'
- le signet portant le nom 'Identifiant'
- le champ contenant la propriété personnelle 'Identifiant'
- La 4ème cellule du 3ème tableau
- Le 5ème paragraphe à partir du bas
- le mot qui suit le texte 'Identifiant :'
- etc etc etc etc
Au risque de me répété : mon identifiant est composé de 9 caractè res
et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de
chaque page.
exprimé autrement : cette chaine apparait juste après la chaine "Zone n
° :" qui elle-meme apparaît après 2 retours à la ligne et une
tabulation.
exple sur une page :
Titre de la page
sous-titre de la page
Zone n° : 0101-2301
Que ce soit par vba ou pas macro, ça n'a pas d'importance, c'est juste la finalité qui m'intéresse.
VBA ou macro ??? Mais c'est pareil ! Macro = macrocommande VBA = le langage de programmation 'Visual Basic pour Applications' Depuis WD97 les macros de Word sont toutes écrites en VBA
J'écris cette phrase par rapport à la phrase de ton 1er message : "Ce n'est possible QUE par une macro." Phrase qui semble elle-même faire référence à l'objet du post "VBA. .." pour dire que ce n'est pas possible en Vba mais par une macro. Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Ceci dit, n'y connaissant rien à Word, je pensais effectivement qu'une macro se différenciat du Vba par le fait qu'elle ne comportait aucune ligne de code et uniquement une suite d'actions (non transcrites en code) et réalisables par quiconque sans connaissance de programmation.
Les pages sont bien séparées par un saut de page. Super le lien, mais il ne dit pas comment prendre l'identifiant comme nom de fichier.
'Identifiant' n'existe pas en VBA
Oui ça j'imagine
C'est à vous de nous dire où se trouve ce que VOUS appelez 'identifia nt' - le signet portant le nom 'Identifiant' - le champ contenant la propriété personnelle 'Identifiant' - La 4ème cellule du 3ème tableau - Le 5ème paragraphe à partir du bas - le mot qui suit le texte 'Identifiant :' - etc etc etc etc
Au risque de me répété : mon identifiant est composé de 9 caractè res et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de chaque page.
exprimé autrement : cette chaine apparait juste après la chaine "Zone n ° :" qui elle-meme apparaît après 2 retours à la ligne et une tabulation.
exple sur une page :
Titre de la page sous-titre de la page Zone n° : 0101-2301
Ludovic
Anacoluthe
Bonjour !
'Ludovic' nous a écrit ...
n'est possible QUE par une macro." Phrase qui semble elle-même faire référence à l'objet du post "VBA..." pour dire que ce n'est pas possible en Vba mais par une macro. Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Alors je précise... :-) 'QUE par macro' s'entend simplement 'QUE par programmation' 99% des utilisateurs de Word ne programment pas Ce que vous demandez ne peut se faire QUE par programmation.
Car vous pouvez copier chaque page dans un document vierge, regarder ce qui est écrit à la 3ème ligne colonne 12, et enregistrer ce nouveau document avec ce que vous avez lu.
Au risque de me répété : mon identifiant est composé de 9 caractères et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de chaque page.
Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9)
Anacoluthe « Le principal est de débuter. » - Georges Charles HUYSMANS
Bonjour !
'Ludovic' nous a écrit ...
n'est possible QUE par une macro."
Phrase qui semble elle-même faire référence à l'objet du post "VBA..."
pour dire que ce n'est pas possible en Vba mais par une macro.
Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Alors je précise... :-)
'QUE par macro' s'entend simplement 'QUE par programmation'
99% des utilisateurs de Word ne programment pas
Ce que vous demandez ne peut se faire QUE par programmation.
Car vous pouvez copier chaque page dans un document vierge, regarder
ce qui est écrit à la 3ème ligne colonne 12, et enregistrer ce nouveau
document avec ce que vous avez lu.
Au risque de me répété : mon identifiant est composé de 9 caractères
et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de
chaque page.
Dim Identifiant As String
Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9)
Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS
n'est possible QUE par une macro." Phrase qui semble elle-même faire référence à l'objet du post "VBA..." pour dire que ce n'est pas possible en Vba mais par une macro. Enfin...je ne vois pas ce que peut dire d'autre cette affirmation.
Alors je précise... :-) 'QUE par macro' s'entend simplement 'QUE par programmation' 99% des utilisateurs de Word ne programment pas Ce que vous demandez ne peut se faire QUE par programmation.
Car vous pouvez copier chaque page dans un document vierge, regarder ce qui est écrit à la 3ème ligne colonne 12, et enregistrer ce nouveau document avec ce que vous avez lu.
Au risque de me répété : mon identifiant est composé de 9 caractères et commence Ligne 3 Colonne 12 (ou autrement dit au Caractère 12) de chaque page.
Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9)
Anacoluthe « Le principal est de débuter. » - Georges Charles HUYSMANS
Ludovic
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro donc ;) Merci bien!
Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:temp" 'DocNum = DocNum + 1 Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9) ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc" ActiveDocument.Close
' Move the selection to the next page in the document Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro
donc ;)
Merci bien!
Sub BreakOnPage()
' Used to set criteria for moving through the document by page.
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of
Pages")
'Select and copy the text to the clipboard
ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into.
Documents.Add
Selection.Paste
' Removes the break that is copied at the end of the page, if any.
Selection.TypeBackspace
ChangeFileOpenDirectory "C:temp"
'DocNum = DocNum + 1
Dim Identifiant As String
Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9)
ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc"
ActiveDocument.Close
' Move the selection to the next page in the document
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro donc ;) Merci bien!
Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:temp" 'DocNum = DocNum + 1 Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9) ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc" ActiveDocument.Close
' Move the selection to the next page in the document Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub
Jac
Bonjour Ludovic,
bien vu la manip... Il manque juste un Selection.HomeKey Unit:=wdStory au début car si la position du curseur n'est pas au début du document, "ça" commencerait à la page qui contient le curseur.
Par contre, ActiveDocument.BuiltInDocumentProperties ("Number of Pages ") me renvoie "Erreur d'exécution '5' : Argument ou appel de procédure incorrect". Il n'y a pas de référence manquante dans mon vba et cinq références "standard" sont cochées. Donc c'est moi qui ai donné le nombre total de pages... (sur Word XP)
Jac
"Ludovic" a écrit dans le message de news:
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro donc ;) Merci bien!
Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:temp" 'DocNum = DocNum + 1 Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9) ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc" ActiveDocument.Close
' Move the selection to the next page in the document Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub
Bonjour Ludovic,
bien vu la manip... Il manque juste un
Selection.HomeKey Unit:=wdStory
au début car si la position du curseur n'est pas au début du document, "ça"
commencerait à la page qui contient le curseur.
Par contre,
ActiveDocument.BuiltInDocumentProperties ("Number of Pages ") me renvoie
"Erreur d'exécution '5' : Argument ou appel de procédure incorrect". Il n'y
a pas de référence manquante dans mon vba et cinq références "standard" sont
cochées.
Donc c'est moi qui ai donné le nombre total de pages... (sur Word XP)
Jac
"Ludovic" <ludovic.gnemmi@gmail.com> a écrit dans le message de news:
1186060808.583883.185860@q75g2000hsh.googlegroups.com...
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro
donc ;)
Merci bien!
Sub BreakOnPage()
' Used to set criteria for moving through the document by page.
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of
Pages")
'Select and copy the text to the clipboard
ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into.
Documents.Add
Selection.Paste
' Removes the break that is copied at the end of the page, if any.
Selection.TypeBackspace
ChangeFileOpenDirectory "C:temp"
'DocNum = DocNum + 1
Dim Identifiant As String
Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9)
ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc"
ActiveDocument.Close
' Move the selection to the next page in the document
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
bien vu la manip... Il manque juste un Selection.HomeKey Unit:=wdStory au début car si la position du curseur n'est pas au début du document, "ça" commencerait à la page qui contient le curseur.
Par contre, ActiveDocument.BuiltInDocumentProperties ("Number of Pages ") me renvoie "Erreur d'exécution '5' : Argument ou appel de procédure incorrect". Il n'y a pas de référence manquante dans mon vba et cinq références "standard" sont cochées. Donc c'est moi qui ai donné le nombre total de pages... (sur Word XP)
Jac
"Ludovic" a écrit dans le message de news:
Bravo Anacoluthe ! Voici le code au complet à coller dans...une Macro donc ;) Merci bien!
Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard ActiveDocument.Bookmarks("page").Range.Copy
' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:temp" 'DocNum = DocNum + 1 Dim Identifiant As String Identifiant = Mid(Activedocument.Paragraphs(3).Range.Text,12,9) ActiveDocument.SaveAs FileName:="test_" & Identifiant & ".doc" ActiveDocument.Close
' Move the selection to the next page in the document Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub
Geo
ActiveDocument.BuiltInDocumentProperties ("Number of Pages ")
C'est : ActiveDocument.BuiltInDocumentProperties ("Number of pages") La casse doit être respectée.
Voici une macro qui liste toutes les propriétés intrinsèques. Sub ListeProp() Dim p As DocumentProperty Dim l As String For Each p In ActiveDocument.BuiltInDocumentProperties l = l + p.name + vbCr Next p MsgBox l End Sub
-- A+
ActiveDocument.BuiltInDocumentProperties ("Number of Pages ")
C'est :
ActiveDocument.BuiltInDocumentProperties ("Number of pages")
La casse doit être respectée.
Voici une macro qui liste toutes les propriétés intrinsèques.
Sub ListeProp()
Dim p As DocumentProperty
Dim l As String
For Each p In ActiveDocument.BuiltInDocumentProperties
l = l + p.name + vbCr
Next p
MsgBox l
End Sub
ActiveDocument.BuiltInDocumentProperties ("Number of Pages ")
C'est : ActiveDocument.BuiltInDocumentProperties ("Number of pages") La casse doit être respectée.
Voici une macro qui liste toutes les propriétés intrinsèques. Sub ListeProp() Dim p As DocumentProperty Dim l As String For Each p In ActiveDocument.BuiltInDocumentProperties l = l + p.name + vbCr Next p MsgBox l End Sub