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 :

Séparer fichier word après un tableau [WD-2010]


Sujet :

VBA Word

  1. #1
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut Séparer fichier word après un tableau
    Bonjour,

    Etant familier avec le VBA Excel j'essaye d'aider un collègue sur un doc Word mais ne connaissant pas bien les différents objets Word je galère un peu, c'est pour ça que je viens solliciter votre aide.

    J'ai un fichier d'environ 800 pages a découper en 237 sous-fichier de taille variable.
    Chaque sous-fichier est composé d'un premier tableau (dont le premier mot est toujours "contact") un peu de bla bla et un autre tableau de taille variable.
    J'aimerais donc découper le fichier après chaque second tableau.
    Visiblement il y a aussi un saut de page après le second tableau (je sais pas si ça peut servir)
    Je ne sais pas si c'est possible directement en code Word
    Si ça ne l'est pas, repérer les numéro de pages de la fin du second tableau ou le début de premier, serait déjà un gros gain de temps pour découper le fichier d'une autre manière

    Pour l'instant j'ai trouvé une boucle qui parcours tout mes tableau (d'ailleurs quand je dis tableau je parle de l'objet "tables" dans Word) mais je ne trouve pas comme découper ou repérer le numéro de la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For I = 1 To activedocument.Tables.Count
      Tables(I). ??
    next I
    Tout aide sera la bienvenue

    Merci d'avance

    edit: ça y est j'ai trouvé comment récupérer les numéros de pages qui m'intéressent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Long
    For i = 1 To 100 'ActiveDocument.Tables.Count
        If i Mod 2 = 1 Then
            ActiveDocument.Tables(i).Select
            Debug.Print Selection.Information(wdActiveEndPageNumber) - 1
        End If
    Next i
    Il me reste a trouver comment séparer mon fichier !
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour Halaster,

    Essaye ce code qui reste à adapter :
    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
     
    Sub Test()
     
    Dim I As Integer
    Dim DocTable As Document
     
        With ActiveDocument
            For I = 1 To .Tables.Count Step 2
                .Range(.Tables(I).Range.Start, .Tables(I + 1).Range.End).Select
                Selection.Copy
                Set DocTable = Documents.Add
                With DocTable
                  .Range.Paste
                End With
                Set DocTable = Nothing
            Next I
        End With
     
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Enorme merci à toi Eric KERGRESSE, ça marche super
    J'ai juste ajouter sauvegarde et fermeture du fichier et c'est super
    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
    Sub découpage()
     
    Dim I As Integer
    Dim DocTable As Document
     
        With ActiveDocument
            For I = 1 To .Tables.Count Step 2
                .Range(.Tables(I).Range.Start, .Tables(I + 1).Range.End).Select
                Selection.Copy
                Set DocTable = Documents.Add
                With DocTable
                  .Range.Paste
                End With
                DocTable.SaveAs "d:\" & "237p_Notif33_20-03-11" & "_" & I & ".docx"
                DocTable.Close
                Set DocTable = Nothing
            Next I
        End With
     
    End Sub
    J'étais en train de bricoler un truc beaucoup moins efficace, tu m'as fait gagner beaucoup du temps !
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

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

Discussions similaires

  1. Ouvrir un fichier word après sa génération
    Par okitrinaw dans le forum C#
    Réponses: 2
    Dernier message: 21/04/2014, 02h36
  2. [XL-2010] Parser une multitude de fichiers Word dans un tableau Excel
    Par Aerial dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/07/2011, 16h45
  3. Inserer un fichier word dans un tableau word
    Par Homer091 dans le forum VBA Word
    Réponses: 2
    Dernier message: 15/05/2008, 18h17
  4. [grep fichier word]recuperer lignes tableau motif
    Par fantomas261 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 15/09/2007, 13h09
  5. Réponses: 10
    Dernier message: 17/08/2007, 09h38

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