IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Comment extraire une page de word, puis la sauvegarder par macro ?


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Comment extraire une page de word, puis la sauvegarder par macro ?
    Bonjour,
    tout nouveau sur le forum, je m'adresse aux connaisseurs afin de trouver une aide précieuse.
    J'ai un fichier word d'une quinzaine de pages avec une trentaine de signets que j'alimente
    par un userform. Jusque là, pas de problème je sais faire.
    Par contre j'aimerais :
    1/ pouvoir extraire une page souhaitée et l'enregistrer sous un "nom.doc".
    2/ conserver les données entrées dans l'UF à la fermeture afin de les récupérer
    pour un suivi et modification éventuelle.
    Quelqu'un peut-il m'aider.
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut bidochon34800,

    Attention, bidochon34800 il y a un forum pour Word et un pour VBA Word (le langage des macros de Word), ce n'est pas grave comme il y a + de 7 000 000 de posts, il faut qu'on les range de façon correcte pour que tout le monde puisse les retrouver. Lorsque tu auras lu ce message, je déplacerais le message sous le bon forum, mais j'attends que tu lises pour que tu t'y retrouves.

    Le problème est que Word ne connait pas vraiment la notion de page et donc c'est un peu compliqué. La pagination dépend de ton imprimante, de ta version de Word (oui, oui), et plein de trucs (que même Word a du mal à gérer) et donc la notion de page est assez aléatoire.

    Mais comme tu utilises les signets, tu peux repérer un changement de page en demandant le n° de folio de début d'un de tes signets puis si ton signet correspond à une page complète, c'est OK, sinon tu parcours tes paragraphes jusqu'au changement de folio, tu crées alors un signet dont le début est celui de ta page et dont la fin est à l'emplacement que tu viens de détecter, ce qui revient alors au premier cas. Si tu veux juste le texte, tu utilises alors le contenu du signet mais si tu veux la présentation (styles, espacement avant/après des paragraphes...), la meilleure solution consiste alors à supprimer tout ce qui est avant ler signet et tout ce qui est après, il ne te reste plus qu'à sauvegarder ta page concernée (sous un autre nom) puis à quitter sans sauvegarder (ce qui est mieux que d'essayer d'annuler les modifications).

    @+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    merci de ta réponse,
    j'avais pas vu la différence entre word et vba word. Mille excuses.
    En ce concerne ta proposition, j'opterais plus volontiers pour ta deuxième proposition avec suppression du "tout avant" et du "tout après".
    Mais par contre j'ignore comment faire, j'ai essayé avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Selection.MoveDown Unit:=wdLine, Count:=37
        Selection.MoveUp Unit:=wdScreen, Count:=1, Extend:=wdExtend
        Selection.MoveDown Unit:=wdLine, Count:=119
        Selection.MoveDown Unit:=wdScreen, Count:=1, Extend:=wdExtend
    mais je patauge, car à l'execution de la macro, ça ne ressort pas comme je te souhaiterais.
    @+

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut bidochon34800,

    C'est un bon début, comme tu vois, Word enregistre les commandes que tu as effectué mais pas toujours de façon 'intelligente" et comme Word, il faut l'aider. Car comme tu vois Word enregistre exactement ce que tu fais donc 37 déplacements de lignes, puis un de 119 lignes mais évidemment pour le prochain doc ça n'ira pas car il faudra peut-être 25 puis après 112...

    Donc recherche ton signet de début de page (appelons-le "DVP" par exemple), puis tu sélectionnes tout le texte du début et tu supprimes. Puis tu recherches ta fin de ton signet et tu sélectionnes la fin du document et tu supprimes. Voilà le code tel que l'enregistreur de macros de Word correctement piloté te le fourni:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub ExtraireUnePage()
        Selection.GoTo What:=wdGoToBookmark, Name:="DVP"
        With ActiveDocument.Bookmarks
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.GoTo What:=wdGoToBookmark, Name:="DVP"
        With ActiveDocument.Bookmarks
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
    End Sub
    Mais on peut le résumer comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ExtraireUnePage()
        Selection.GoTo What:=wdGoToBookmark, Name:="DVP"
        Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.GoTo What:=wdGoToBookmark, Name:="DVP"
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
    End Sub
    @+

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut merci
    merci de ta réponse. Je vais essayer de le décortiquer.
    Je le mets en place et je te tiens au courant.
    Merci encore et bonne soirée.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Février 2013
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Un grand merci
    Merci Sepia
    J'ai tout fait comme tu as dit et à mon grand bonheur, ça marche à merveille.
    Mille mercis, c'est pile poli ce que je voulais.

  7. #7
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut bidochon34800,

    Super. Mais il te reste à faire juste une petite formalité. Lorsqu'un problème a été résolu, on clique sur le bouton :Resolu: pour indiquer aux autres DVPnautes que le problème est... résolu ce qui facilite les recherches lorsque l'un d'entre eux a le même problème.

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment transformer une page Word en image ?
    Par bigbernie dans le forum Word
    Réponses: 1
    Dernier message: 05/09/2010, 19h09
  2. Réponses: 2
    Dernier message: 11/04/2009, 11h04
  3. Réponses: 2
    Dernier message: 28/06/2007, 08h23
  4. [débutante] comment afficher une page asp ?
    Par boucher_emilie dans le forum ASP
    Réponses: 5
    Dernier message: 29/06/2004, 09h40
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo