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

Word Discussion :

Demande modif macro


Sujet :

Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 0
    Points
    0
    Par défaut Demande modif macro
    Bonsoir,
    Etant complemement nul en macro sous Word, je viens vous soumettre ce problème :
    - J'ai un fichier word qui est le résultat d'un publipostage (généré par un logiciel de paie)
    - Aujourd'hui je dois découper ce fichier (environ 100 pages) pour obtenir un fichier a chaque saut de page
    - J'ai trouvé cette macro qui me découpe ce fichier

    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
    18
    19
    20
    21
    22
    23
    24
    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:\"
          DocNum = DocNum + 1
          ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
          ActiveDocument.Close
     
          ' Move the selection to the next page in the document.
          Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Par contre je souhaiterai que le fichier généré porte le nom de la personne concerné que l'on retrouve systématiquement au même endroit : quel modif doit on apporter à cette macro ?

    Un grand merci pour votre aide

    Philippe

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par philoche63 Voir le message
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
    Par contre je souhaiterai que le fichier généré porte le nom de la personne concerné que l'on retrouve systématiquement au même endroit : quel modif doit on apporter à cette macro ?

    Un grand merci pour votre aide

    Philippe
    If faut juste retrouver le nom et changer cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
    en quelque chose qui va ressembler à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          ActiveDocument.SaveAs FileName:= le_nom_trouvé_personne_ne_sait_où  & ".doc"

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    Merci pour ta réponse mais comment extraire le nom et le prénom de la personne qui se trouve par exemple sur la 15e ligne du document et après le 4e mot ?
    Merci pour ton aide.
    Philippe

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Il faut réouvrir tous les documents après sauvegarde.

    La raison est que le document ne contient qu'une seule 15ième ligne.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Il faut réouvrir tous les documents après sauvegarde.

    La raison est que le document ne contient qu'une seule 15ième ligne.
    Bonjour et merci de ta réponse
    Je ne suis pas sure d'avoir bien compris ta réponse.
    Il y a t il un moyen sous VBA de descendre à la 15e ligne et de prendre le 4e mot pour le prenom et le 5e mot pour le nom ?
    Je connais un peu les macros sous excel et il est possible assez facilement de le faire (Fonction CELLS)

    Merci encore pour ton aide

    Philippe

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si, on peut le faire avant sauvegarde, juste après la copie.

    Mais ce sont des lignes ou des paragraphes ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Si, on peut le faire avant sauvegarde, juste après la copie.

    Mais ce sont des lignes ou des paragraphes ?
    merci de ta réponse. Etant complètement nul en macro j'ai encore besoin de tes lumières.

    voici le code (les lignes qui commencent par selection. ont été générées par l'enregistreur de macro)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    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.PasteAndFormat (wdFormatOriginalFormatting)
          ' Removes the break that is copied at the end of the page, if any.
        Selection.MoveDown Unit:=wdLine, Count:=25
        Selection.MoveRight Unit:=wdCharacter, Count:=23
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.MoveRight Unit:=wdCharacter, Count:=16, Extend:=wdExtend
        Selection.Copy
          Selection.TypeBackspace
          ChangeFileOpenDirectory "F:\PDF CREATOR\"
          DocNum = DocNum + 1
          ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
          ActiveDocument.Close
     
          ' Move the selection to the next page in the document.
          Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Merci encore pour ton aide

    a+

    Philippe

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    L'enregistreur de macro ne sera pas d'une grande utilité.

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par philoche63 Voir le message
    merci de ta réponse. Etant complètement nul en macro j'ai encore besoin de tes lumières.

    voici le code (les lignes qui commencent par selection. ont été générées par l'enregistreur de macro)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    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.PasteAndFormat (wdFormatOriginalFormatting)
          ' Removes the break that is copied at the end of the page, if any.
        Selection.MoveDown Unit:=wdLine, Count:=25
        Selection.MoveRight Unit:=wdCharacter, Count:=23
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.MoveRight Unit:=wdCharacter, Count:=16, Extend:=wdExtend
        Selection.Copy
          Selection.TypeBackspace
          ChangeFileOpenDirectory "F:\PDF CREATOR\"
          DocNum = DocNum + 1
          ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
          ActiveDocument.Close
     
          ' Move the selection to the next page in the document.
          Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Merci encore pour ton aide

    a+

    Philippe
    Ton code ne répond en rien à la question de heureux-oli. Il veut savoir comment est le texte rendu dans le nouveau document. Est-ce une série de paragraphes d'une seule ligne, ou quoi d'autre. VBA pour Word n'a aucune notion de ce qu'est une ligne. Donc, en VBA il n'y a rien qui permette de descendre directement de 15 lignes. VBA Word peut utiliser les caractères, les mots, les phrases, les paragraphes, les sections, les documents au complet, mais pas les lignes, sauf le cas où une seule ligne est un seul paragraphe. Mais, encore là, c'est le paragraphe qui compte et non la ligne.

    C'est pour cela que la composition, ou la disposition du texte est primordiale.

Discussions similaires

  1. Modif macro impression - ajout d'un répertoire dans chemin
    Par niobium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2009, 07h03
  2. Réponses: 7
    Dernier message: 08/09/2008, 22h19
  3. Modif macro pour ne pas copier le bouton
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/02/2008, 11h47
  4. Modification macro pour imprimer de telle a telle page
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/01/2008, 10h27
  5. Modification Macro Excel
    Par Dragon05 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/02/2007, 14h44

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